PHP is_callable() 函数检查变量的内容是否可以作为变量调用是否能在当前范围内运行。如果变量的内容可以被调用,该函数返回 true,否则返回 false。
语法
is_callable(variable, syntax_only, callable_name)
参数
variable | 必需。 指定要判断的变量。 |
syntax_only | 可选。 如果设置为 true,该函数仅验证变量 可能是函数或方法。它只会拒绝不是字符串的简单变量,或者没有可用作回调的有效结构的数组。有效的应该只有 2 个条目,第一个是对象或字符串,第二个是字符串。默认值为 false。 |
callable_name | 可选。 接收"可调用名称"(仅适用于类)。 |
返回值
如果变量 是可调用的则返回 true,否则为 false。
示例:is_callable() 示例
下面的示例显示了is_callable() 函数的用法。
<?php
//声明一个函数
function func_test() {
}
$func_name = 'func_test';
var_dump(is_callable("func_test"));
var_dump(is_callable($func_name));
var_dump(is_callable($func_name, false, $callable_name));
echo $callable_name, "\n";
?>
上述代码的输出将是:
bool(true)
bool(true)
bool(true)
func_test
示例:包含方法的数组
考虑下面的示例,一个数组包含方法与此函数一起使用。
<?php
//声明一个函数
class someClass {
function someMethod() {
}
}
//创建对象实例
$obj = new someClass();
$var_name = array($obj, 'someMethod');
var_dump(is_callable($var_name));
var_dump(is_callable($var_name, false, $callable_name));
echo $callable_name, "\n";
?>
上述代码的输出将是:
bool(true)
bool(true)
someClass::someMethod