有什么区别
foreach ($my_array as $my_value) {
}
And:
foreach ($my_array as &$my_value) {
}
?
我可以请您举两个现实世界的例子来说明何时使用其中一种以及何时使用另一种吗?
第一个示例创建值的副本,而第二个示例使用对原始值的引用。所以在第一个之后foreach
运行时,原始数组仍然未受影响。第二次之后foreach
原始数组可能已被修改,因为它是通过引用处理的。
一些原生 PHP 函数已经以这种方式工作,例如shuffle() https://www.php.net/manual/en/function.shuffle.php它会重新排列数组的内容。您会注意到这个函数不返回数组,您只需调用它:
$myArray = array('foo', 'bar', 'fizz', 'buzz');
shuffle( $myArray );
// $myArray is now shuffled
它发挥了它的魔力,因为它通过引用来处理数组而不是创建它的副本。
还有一些函数不传递任何内容引用而是处理原始值的副本,例如ucwords() https://www.php.net/manual/en/function.ucwords.php它返回新的结果字符串:
$myString = "hello world";
$myString = ucwords( $myString );
// $myString is now capitalized
See 通过引用传递 http://www.php.net/manual/en/language.references.pass.php.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)