严格标准:了解“仅应通过引用传递变量”警告
在 PHP 中,严格模式强制执行某些编程实践以改进代码质量和一致性。其中一种做法是避免通过引用传递非变量值。本问题探讨了此警告背后的原因,并提供了避免该警告的解决方案。
问题:引用参数和返回值
考虑以下代码片段:
此代码会触发严格的标准警告“仅应通过引用传递变量”。然而,下面的代码却没有:
要理解这种行为,我们需要深入研究 PHP 的引用处理。当引用传递给函数时,对该参数引用的变量所做的任何更改都会反映在原始变量中。在第一个代码片段中,$instance->find(...) 返回一个数组,它不是一个变量。通过引用传递此数组会触发警告。
了解异常
但是,此异常可能会产生误导。在第二个代码片段中,函数 get_arr() 返回一个数组,这意味着可以将引用传递给它。不过,函数本身不使用引用参数,因此可以避免警告。
避免警告的解决方案
要消除警告,有两种选择:
示例:
通过使用中间变量 $inter,我们可以避免传递返回值直接引用get_arr(),解决严格标准警告。
以上是为什么 PHP 的严格模式会警告'只有变量应该通过引用传递”?的详细内容。更多信息请关注PHP中文网其他相关文章!