PHP Closure类给出致命错误?

时间:2013-07-01 16:14:07

标签: php closures

我得到了这个:

  

PHP致命错误:调用未定义的方法Closure :: bind()

我收到错误的行是:

public function bind($signal, $callback)
{

    if (!array_key_exists($signal, $this->_registry))
        $this->_registry[$signal] = array();
    $this->_registry[$signal][] = \Closure::bind($callback, null, 'static'); // here

    return $this;
}

正如您所见,我使用了manual中显示的Closure::bind()。请注意我使用\Closure::bind()(请注意斜杠),因为我使用命名空间自动加载,并且需要通知自动加载器它应该查看系统命名空间。

注意

仔细查看文档中的每个类,并注意每个细节:)

3 个答案:

答案 0 :(得分:5)

检查你的php版本,显然你不在> = 5.4.0!

答案 1 :(得分:2)

您需要确保PHP版本支持该方法。
您可以使用method_exists()命令检查方法是否存在。您尝试执行的方法仅适用于PHP 5.4.0或更高版本!

有关检查方法存在的更多信息,请查看此处:http://php.net/manual/en/function.method-exists.php

答案 2 :(得分:-1)

您需要检查您的PHP版本。文档说明版本应至少为5.4.0

链接: - Closure