我今天在思考所有 OOP 是如何工作的。
我在想:使用给定的文本值检查方法是否存在不是很好吗?
那么,如果我有一个文本 function_name_in_text_format,我如何检查方法 function_name_in_text_format 是否存在?
我听说了一个解决方案,使用 $$,但找不到真实的例子
我今天在思考所有 OOP 是如何工作的。
我在想:使用给定的文本值检查方法是否存在不是很好吗?
那么,如果我有一个文本 function_name_in_text_format,我如何检查方法 function_name_in_text_format 是否存在?
我听说了一个解决方案,使用 $$,但找不到真实的例子
您可以使用is_callable()函数。
验证变量的内容是否可以作为函数调用。这可以检查简单变量是否包含有效函数的名称,或者数组是否包含正确编码的对象和函数名称。
顾名思义,还有function_exists()和method_exists()函数可以使用。
使用 $$ 的方法称为变量变量。
变量变量获取变量的值并将其视为变量的名称。
下面包括一个使用示例is_callable()
:
//
// Simple variable containing a function
//
function someFunction()
{
}
$functionVariable = 'someFunction';
var_dump(is_callable($functionVariable, false, $callable_name)); // bool(true)
echo $callable_name, "\n"; // someFunction
//
// Array containing a method
//
class someClass {
function someMethod()
{
}
}
$anObject = new someClass();
$methodVariable = array($anObject, 'someMethod');
var_dump(is_callable($methodVariable, true, $callable_name)); // bool(true)
echo $callable_name, "\n"; // someClass::someMethod
?>
这可以通过一种叫做反射的东西来实现。