程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> PHP中的&傳值引用的問題,在foreach循環的結果能幫解釋下輸出的結果原理是什麼?,PHP

PHP中的&傳值引用的問題,在foreach循環的結果能幫解釋下輸出的結果原理是什麼?,PHP

編輯:關於PHP編程

PHP中的&傳值引用的問題,在foreach循環的結果能幫解釋下輸出的結果原理是什麼?,PHP


PHP中的&傳值引用的問題,在foreach循環的結果能幫解釋下輸出的結果原理是什麼? 
代碼如下:
<?php
$arr = array('one','two','three');
foreach ($arr as &$value){ echo 'Value:'.$value.'<br />'; }
foreach ($arr as $value){ echo 'Value:'.$value.'<br />'; }
?>
輸出結果:
Value:one
Value:two
Value:three

Value:one
Value:two
Value:two

第一次帶&的foreach並沒有改變數組的內容。。
而是最後一次循環$value引用了數組的最後一個項 (可以測試一下,在第一次循環結束後unset($value),第二次循環的結果就不會有變化),
在你第二個foreach也是使用的$value變量,這才造成了怪異的問題(可以換個變量,比如$val,輸出的數組就不會有變化)。
第二個foreach是賦值給$value,但是這時的$value是引用的數組的最後一個值,
所以
第一次循環把one賦值給了最後一個值,
第二次把two賦值給最後一個,
第三次也就是最後一個已經在第二次循環被賦值為two,所以仍然是two。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved