我有类似的代码:
$name = '_DBR'; // This comes from a function call
$this->_Inits['_DBR'] = function () { return get_library('Database')->getConnection('users', 'read'); };
$inits = $this->_Inits[$name];
$result = $inits(); // ERROR: Function name must be a string
return $result;
我得到的错误是:
Function name must be a string in xxxx
有什么方法可以使用数组来存储多个闭包,是否有一种工作方式来访问它们?
我使用PHP 5.4.3
答案 0 :(得分:4)
是的,请改用call_user_func。
答案 1 :(得分:3)
这在php 5.3.10中对我很好。
$m = array();
$m['fish'] = function() { print "Hello\n"; };
$f = $m['fish'];
$f();