PHP闭包类给出了致命错误?

PHP闭包类给出了致命错误?,php,closures,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

我明白了:

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;
}
如您所见,我使用了中显示的
Closure::bind()
。请注意,我使用的是
\Closure::bind()
(请注意斜杠),因为我使用了名称空间自动加载,需要通知自动加载程序它应该查看系统名称空间

注意


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

您需要检查您的PHP版本。文档中规定,该版本应至少为5.4.0


链接:-

您需要检查您的PHP版本。文档中规定,该版本应至少为5.4.0


链接:-

检查您的php版本,显然您不在>=5.4.0上

检查您的php版本,显然您不在>=5.4.0上

您需要确保您的PHP版本支持该方法。
您可以使用
method\u exists()
命令检查方法是否存在。您尝试执行的方法仅适用于PHP5.4.0或更高版本


有关检查方法存在性的更多信息,请查看此处:

您需要确保PHP版本支持该方法。
您可以使用
method\u exists()
命令检查方法存在性。您尝试执行的方法仅适用于PHP5.4.0或更高版本



有关检查方法存在性的更多信息,请查看此处:

您使用的是什么版本的PHP?您的服务器上有什么版本的PHP?服务器上有5.3.16版localhost@DaGhostmanDimitrov当前位置你的问题就在那里!你需要5.4版本才能工作。请看我的答案:]你使用的是什么版本的PHP?你的服务器上有什么版本的PHP?服务器上有5.3.16版本localhost@DaGhostmanDimitrov当前位置你的问题就在那里!你需要5.4才能做到这一点。看我的答案:]我会争辩。。因为错误是方法不存在:)哦。。。是的,我知道了。我的错;)@维韦克:可能会添加一个文档链接。:-)我认为。。因为错误是方法不存在:)哦。。。是的,我知道了。我的错;)@维韦克:可能会添加一个文档链接。:-)好吧,为什么在_构造中说min版本>=5.3.0:DClosures存在于5.3中,但方法是在5.4中添加的:]你必须小心处理像这样的新东西;他们喜欢在以后的更新中扩展他们的类!ty用于清除:D和快速响应所有:)Yh我只是在看构造器。。。并且认为整个类都在那里:Dok为什么在_构造中它说min版本>=5.3.0:DClosures存在于5.3中,但是方法是在5.4中添加的:]你必须小心处理像这样的新东西;他们喜欢在以后的更新中扩展他们的类!ty用于清除:D和快速响应所有:)Yh我只是在看构造器。。。并且认为整个类都存在:Dit不是一个函数,而是一个方法:),正确的检查方法不是使用函数exists,而是使用
新的ReflectionClass(Object)::hasMethod($methodName)
yh+1更简单的方法:Dit不是一个函数,而是一个方法:),正确的检查方法不是使用函数exists,而是使用
newreflectionclass(Object)::hasMethod($methodName)yh+1以获得更简单的方式:D