标签: underscore.php

Underscore.php抛出非静态方法__ :: invoke()不应该静态调用

我刚刚升级到PHP 5.5.3,我注意到Underscore.php抛出一个奇怪的错误:

Non-static method __::invoke() should not be called statically
Run Code Online (Sandbox Code Playgroud)

导致此错误的问题代码如下所示:

$params = \__::invoke( $params, function( $value ) {
   ...
} );
Run Code Online (Sandbox Code Playgroud)

通过Underscore.php源代码,我不明白为什么抛出此错误,因为调用invoke应该由__callStatic处理程序处理:

public static function __callStatic($name, $arguments) {
  $mixins =& self::getInstance()->_mixins;
  return call_user_func_array($mixins[$name], $arguments);
}
Run Code Online (Sandbox Code Playgroud)

我不想搞乱PHP中的错误报告设置,因为这意味着在整个堆栈中改变PHP设置.

我目前的解决方法是:

$__ = new \__();

$params = $__->invoke( $params, function( $value ) {
  ...
} );
Run Code Online (Sandbox Code Playgroud)

至少可以说是笨拙的.有没有更好的办法?

php underscore.php

2
推荐指数
1
解决办法
482
查看次数

标签 统计

php ×1

underscore.php ×1