【发布时间】:2011-01-30 00:24:43
【问题描述】:
我有一个钩子系统设置...它正在本地主机上运行...我将其上线并收到错误消息“警告:不推荐使用调用时传递引用”。
现在,显然解决方法是从函数调用中删除所有“&”,即 foo(&$me) 到 foo($me),然后在 foo 的函数定义中执行“function foo(&$me)” .
但是,我不能这样做...因为我的钩子接受一个数组作为参数,我需要解决这个问题。就像我可以使用“run_hooks ('hook-name', $me);”或“run_hooks('hook-name', array ($me, $another_var, etc...))”;
所以这意味着我不能使用“function run_hooks ($hook_name, &$arguments)”,因为我会在 php 中得到一个错误,说它不能传递“array()”作为参考......
有什么想法可以解决吗?
谢谢。
【问题讨论】:
-
您不能在函数调用时指定 &,因为它是引用而不是指针。所以你必须将 & 移动到函数定义中。
-
如果它被用作
foo( array(....) );,为什么它首先应该是一个参考?
标签: php arrays pass-by-reference hook