我今天在思考OOP的工作原理。
我在想:用一个给定的文本值检查一个方法是不是很好?
所以,如果我有一个文本function_name_in_text_format,我该如何检查方法function_name_in_text_format是否存在?
我听说过一个使用$$的解决方案,但找不到真实的例子
答案 0 :(得分:3)
您可以使用is_callable()功能。
验证变量的内容是否可以作为函数调用。 这可以检查一个简单的变量是否包含有效的名称 函数,或者数组包含正确编码的对象和 功能名称。
还可以使用function_exists()和method_exists()函数作为名称。
使用$$的方法称为variable variables。
变量变量采用变量的值并将其视为 变量的名称。
下面是使用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
?>
答案 1 :(得分:2)
通过一种叫做反射的东西是可能的。