当我尝试通过引用调用带有参数的函数时它会激活
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中工作正常。
我认为这甚至不是解决方法,它只是在执行:-)
| 归档时间: |
|
| 查看次数: |
33430 次 |
| 最近记录: |