为什么出现错误"预计会成为参考,给定值"?

yur*_*y-n 27 php

当我尝试通过引用调用带有参数的函数时它会激活

function test(&$a) ...
Run Code Online (Sandbox Code Playgroud)

通过

call_user_func('test', $b);
Run Code Online (Sandbox Code Playgroud)

Dan*_*uis 47

call_user_func可以通过值传递参数,而不是通过引用.如果你想通过引用传递,你需要直接调用函数,或者使用call_user_func_array,接受引用(但是这可能不适用于PHP 5.3及更高版本,具体取决于手册的哪个部分).


Jim*_* W. 20

来自call_user_func()的手册

请注意,call_user_func()的参数不通过引用传递.

所以,是的,有你的答案.但是,有一种解决方法,再次阅读手册

call_user_func_array('test', array(&$b));
Run Code Online (Sandbox Code Playgroud)

应该可以通过引用传递它.


小智 5

我只是遇到了同样的问题,所以要进行更改(以我为例):

$result = call_user_func($this->_eventHandler[$handlerName][$i], $this, $event);
Run Code Online (Sandbox Code Playgroud)

$result = call_user_func($this->_eventHandler[$handlerName][$i], &$this, &$event);
Run Code Online (Sandbox Code Playgroud)

似乎在php 5.3中工作正常。

我认为这甚至不是解决方法,它只是在执行:-)