请教个PHP语言问题,关于传引用参数

function f($g) { // g 是匿名函数

 return function h() use($g)  { 

  // 做一些其他工作……然后调用 g,把 h 收到的所有参数传给 g

  return call_user_func_array($g, func_get_args()); 

 };

}



// 现在这么用,g 是一个做加法的函数,结果通过参数 r 返回

$h = f(function (&$r, $a, $b) { $r = $a + $b; });

$h($r, 1, 2); // 出错,因为 $r 不能传引用,问题出在上面的 func_get_args() 。

请问,如何把 &$r 传进匿名函数 g ?谢谢!

补充:这是一个简化的例子,我知道可以用返回值来接收结果:$r = $h(1, 2);但因为一些不便说明的原因,我“希望”用参数接收结果,请问有办法吗?

阅读 1.6k
1 个回答

说实话,你这样的写法很奇怪,而且不建议用引用。
这个问题应该会沉

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题