3

我有一个类似的代码:

$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

4

2 回答 2

4

是的,改用 call_user_func 。

于 2012-09-06T19:30:31.397 回答
4

这在 php 5.3.10 中对我来说很好。

$m = array();
$m['fish'] = function() { print "Hello\n"; };
$f = $m['fish'];
$f();
于 2012-09-06T19:33:03.670 回答