呼叫时间通过按引用已被除去[重复](Call-time pass-by-reference has

2019-06-27 23:52发布

可能重复:
在调用的时候传递通过引用已弃用

虽然它可以在互联网上的某个地方记录,我无法找到一个解决我的问题。 由于PHP 5.4的更新,传递通过引用已被删除。

现在,我有这一段代码的一个问题,我希望有人可以看到我想要用它做,使他们能够有可能帮我一个解决方案来克服传递通过引用问题。

下面是有问题的代码:

public function trigger_hooks( $command, &$client, $input ) {
    if( isset( $this->hooks[$command] ) ) {
        foreach( $this->hooks[$command] as $func ) {
            PS3socket::debug( 'Triggering Hook \'' . $func . '\' for \'' . $command . '\'' );
            $continue = call_user_func( $func, &$this, &$client, $input );
            if( $continue === FALSE ) {
                break;
            }
        }
    }
}

Answer 1:

只有通话时间被删除传递通过引用。 所以改变:

call_user_func($func, &$this, &$client ...

为此:

call_user_func($func, $this, $client ...

&$this不应该PHP4反正时间后需要。

如果您确实需要$客户端按引用传递,更新功能($ FUNC)签名代替( function func(&$client) {



文章来源: Call-time pass-by-reference has been removed [duplicate]