php foreach循环中的变量
生活随笔
收集整理的這篇文章主要介紹了
php foreach循环中的变量
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
使用foreach的時候出現了一個奇怪的現象,其中一個數組變量的最后一個值莫名其妙被修改了,查看php手冊foreach說明發現
Warning
數組最后一個元素的?$value?引用在?foreach?循環之后仍會保留。建議使用?unset()?來將其銷毀。
有這樣的警告。使用unset 方法或使用其他變量名稱。
例如
$a=[1,2]; foreach($a as $key=>$value){$a[$key]=$value+1; } echo $value;//輸出 2?如果在$a中使用了指針,則會影響后面同名的變量的值,結果如下:
$a=[1,2]; $b=[3,4]; foreach($a as $key=>&$value){$a[$key]=$value+1; } print_r($a); foreach($b as $value){$value++; } print_r($a); print_r($b);輸出如下 Array ([0] => 2[1] => 3 ) Array ([0] => 2[1] => 5 ) Array ([0] => 3[1] => 4 )?如果都使用指針或使用unset,則不受影響
$a=[1,2]; $b=[3,4]; foreach($a as $key=>&$value){$a[$key]=$value+1; }print_r($a); foreach($b as &$value){$value++; } print_r($a); print_r($b); 輸入如下 Array ([0] => 2[1] => 3 ) 3Array ([0] => 2[1] => 3 ) Array ([0] => 4[1] => 5 )?使用unset
$a=[1,2]; $b=[3,4]; foreach($a as $key=>&$value){$a[$key]=$value+1; }print_r($a); unset($key,$value); foreach($b as $key=>$value){$b[$key]=$value+1; } print_r($a); print_r($b); 輸出如下Array ([0] => 2[1] => 3 ) Array ([0] => 2[1] => 3 ) Array ([0] => 4[1] => 5 )?
轉載于:https://www.cnblogs.com/joystrong/p/9053900.html
總結
以上是生活随笔為你收集整理的php foreach循环中的变量的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 如何看待腾讯元宝对环境保护的影响?
- 下一篇: php实现倒计时效果