通过引用传递的变量和在自身内部调用的函数

Variable passed by reference and function called within itself

提问人:Faye D. 提问时间:5/22/2022 更新时间:5/22/2022 访问量:31

问:

我有一个声明为函数的函数,在某些情况下,我必须这样称呼自己:function build(array $data, SimpleXMLElement &$xml)

$subnode = $xml->addChild($key);
build($value, $subnode);

我试图通过写它来缩短它,但我收到了通知build($value, $xml->addChild($key));Notice: Only variables should be passed by reference in...

难道没有任何技巧可以安全地用单行替换两条线吗?

短暂性投资安全

PHP 按引用传递

评论

0赞 deceze 5/22/2022
SimpleXMLElement首先是对象,对它们的更改无论如何都会传播给任何看到该对象的人,无论您是否通过引用......?!
0赞 Faye D. 5/22/2022
你是在暗示没有必要通过引用传递它吗?因为如果是这样的话,你就错了 1000% ......
0赞 deceze 5/22/2022
这取决于你正在做什么和期望发生的事情,但是是的,我的意思是,对于某些用例,参考可能是不必要的。
0赞 Faye D. 5/22/2022
在这种特殊情况下,需要参考。但无论如何,在某些情况下,甚至在股票函数中通过引用来定义......例如,我刚刚遇到了另一个相同的问题。我想在一行中呼应数组的最后一个元素,以及所有这些元素......我这样做了,我收到了同样的通知,即使它正在工作......所以我想这只是压制通知的问题?echo end(explode(' ', trim($item['ITEM.MTRL_CCWEBCAT']), 2));
0赞 deceze 5/22/2022
end的主要用途是将内部数组指针设置到末尾。为此,传递表达式的结果没有意义,因为之后任何内容都无法访问该数组,因此设置数组指针变得毫无意义。这也返回最后一个元素是副产品。这就是为什么存在这样的通知,向你指出代码可能不会按照你的想法去做。所以,不,这不是需要压制通知的问题。end

答: 暂无答案