php foreach

WBOY
發布: 2016-07-28 08:30:20
原創
1257 人瀏覽過

在PHP開發中,我們經常會迭代一個數組,並且修改其中的元素的值,如果我們有其它語言的經驗,那麼這裡我們很可能就會出錯。

就拿java來說,因為我對java還是比較熟悉的,在java中我們迭代一個數組,並修改其值,我們會採用如下方法:

	<span>	</span>for(Object item : objectArray){
		<span>	</span>item.setAttribute('value');
	<span>	</span>}
登入後複製

上面的程式碼沒問題,一切都照著我們期望的來。直到我到了PHP,這幾天在做一個小項目,結果發現使用和上面類似的方法修改了元素的值,竟然不起作用!使用的程式碼如下:
		foreach($arrays as $item){
			$item->name = 'value';	
		}
		echo $arrays[0]->name;
登入後複製

我發現輸出出來的竟然是未修改之前的!

經過一番調試之後,最後猜想是不是上面的程式碼傳的是值,而不是引用。於是去官網查看文檔,發現竟然真的是這樣,於是我修改程式碼成下面這樣:

		foreach($arrays as &$item){
			$item->name = 'value';	
		}
		echo $arrays[0]->name;
登入後複製
或者是這樣:
		foreach($arrays as $key=>$item){
			$arrays[$key]->name = 'value';	
		}
		echo $arrays[0]->name;
登入後複製
這兩種方法運行結果都OK。於是,覺得官方文件應該多讀讀。當初只是大體過了一遍,並沒有真正讀透,就開始做專案。

參考資料:

PHP官網對foreach的解釋:http://php.net/manual/en/control-structures.foreach.php

更多乾貨,請關注微信公眾號:開發and生活

以上就介紹了 php foreach,包含了面向的內容,希望對PHP教學有興趣的朋友有幫助。

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板