使用$$从文本创建函数变量

时间:2012-07-10 22:10:28

标签: php

我今天在思考OOP的工作原理。

我在想:用一个给定的文本值检查一个方法是不是很好?

所以,如果我有一个文本function_name_in_text_format,我该如何检查方法function_name_in_text_format是否存在?

我听说过一个使用$$的解决方案,但找不到真实的例子

2 个答案:

答案 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)

通过一种叫做反射的东西是可能的。