首先对不起我的英语。
我试着用一个例子来解释。
class Test{
protected $functions = ['a'=>'function1', 'b'=>['ClassX', 'methodY']];
public function exaple($value, $type){
$k = call_user_func($this->functions[$type], $value);
}
}
通过这种方式,该方法可以根据类型对值应用不同的函数。
如果我需要调用一个放在“函数”数组中的函数,则只需要一个字符串,否则我会放置一个带有类名和方法名的数组。
通过这种方式,一切正常。
当我需要在“函数”数组中放入“测试”类的方法时,问题就来了。绕过我可以写的数组:
call_user_func([$this, 'localMethod'], $value);
和这项工作。
但是当我尝试将它放在“函数”数组中时,我不知道如何在$this
此处指定新示例:
class Test{
protected $functions = ['a'=>'function1', 'b'=>['ClassX', 'methodY'], 'c'=>['$this','localMethod']];
public function exaple($value, $type){
$k = call_user_func($this->functions[$type], $value);
}
public function localMethod($value){
[...]
}
}
这样是行不通的。
我尝试了不同的方式:
'c'=>['$this','localMethod']
'c'=>['this','localMethod']
'c'=>[$this,'localMethod']
但没有运气。
任何人都可以帮助我吗?任何帮助将不胜感激。
谢谢