2

我正在尝试检查是否有几个 php 函数可用。Source 应该是一个带有函数名的数组。不幸的是,这似乎不起作用。我总是得到负回报:

// Array with function names
$func_array = array("die",
                    "echo", "empty", "exit", "eval",
                    "include", "include_once", "isset",
                    "list",
                    "print",
                    "require", "require_once",
                    "unset","exec"
                    );

// Check Function
function func_avail($funcav) {   
    if ( function_exists($funcav) ) {
        echo "$funcav is enabled<br/>";
    }
    else {
        echo "$funcav is not enabled<br/>";
    }

}

// Loop through array
for ( $x = 0; $x < count ( $func_array ); $x++ )
{
        func_avail($func_array[$x]);
}

问题1:为什么这不起作用?(输出始终未启用)

问题 2:未启用 (function_exists = 0) 表示该功能在 php.ini 中被禁用,或者这也意味着此 php 版本不可用。FE 我正在尝试使用仅适用于较新 php 版本的功能。

亲切的问候,谢谢!

托尼

4

1 回答 1

0

问题1:为什么这不起作用?输出始终未启用

……除了exec()。这是正确的:其他项目都不是函数,它们是语言结构。(据我所知,没有办法禁用语言结构。)

function_exists()的手册页确认:

此函数将返回FALSE构造,例如include_onceand echo

 

问题 2:未启用 (function_exists = 0) 表示该功能在 php.ini 中被禁用,或者这也意味着此 php 版本不可用。FE 我正在尝试使用仅适用于较新 php 版本的功能。

这正是手册所说的

检查 function_name 的已定义函数列表,包括内置(内部)和用户定义的。

注意:即使函数本身由于配置或编译选项而无法使用,函数名称也可能存在(以图像函数为例)。

于 2013-10-03T16:15:14.260 回答