php foreach

Jul 28, 2016 am 08:30 AM
arrays foreach gt name

在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教學有興趣的朋友有幫助。

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

華為GT3 Pro和GT4的差異是什麼? 華為GT3 Pro和GT4的差異是什麼? Dec 29, 2023 pm 02:27 PM

許多用戶在選擇智慧型手錶的時候都會選擇的華為的品牌,其中華為GT3pro和GT4都是非常熱門的選擇,不少用戶都很好奇華為GT3pro和GT4有什麼區別,下面就給大家介紹一下二者。華為GT3pro和GT4有什麼差別一、外觀GT4:46mm和41mm,材質是玻璃鏡板+不鏽鋼機身+高分纖維後殼。 GT3pro:46.6mm和42.9mm,材質是藍寶石玻璃鏡+鈦金屬機身/陶瓷機身+陶瓷後殼二、健康GT4:採用最新的華為Truseen5.5+演算法,結果會更加的精準。 GT3pro:多了ECG心電圖和血管及安

Java ArrayList遍歷時使用foreach和iterator刪除元素的差異是什麼? Java ArrayList遍歷時使用foreach和iterator刪除元素的差異是什麼? Apr 27, 2023 pm 03:40 PM

一、Iterator和foreach的區別多態差異(foreach底層就是Iterator)Iterator是一個介面類型,他不關心集合或數組的類型;for和foreach都需要先知道集合的類型,甚至是集合內元素的類型; 1.為啥說foreach底層就是Iterator寫的程式碼:反編譯程式碼:二、foreach與iterator時remove的差別先來看阿里java開發手冊但1的時候不會報錯,2的時候就會報錯(java. util.ConcurrentModificationException)首

php如何判斷foreach循環到第幾個 php如何判斷foreach循環到第幾個 Jul 10, 2023 pm 02:18 PM

php判斷foreach循環到第幾個的步驟:1、創建一個「$fruits」的數組;2、創建一個計數器變數「$counter」初始值為0;3、使用「foreach」循環遍歷數組,並在循環體中增加計數器變數的值,再輸出每個元素和它們的索引;4、在「foreach」循環體外輸出計數器變數的值,以確認循環到了第幾個元素。

使用java的Arrays.hashCode()函數計算數組的雜湊碼 使用java的Arrays.hashCode()函數計算數組的雜湊碼 Jul 25, 2023 am 08:01 AM

使用Java的Arrays.hashCode()函數計算數組的雜湊碼雜湊碼(HashCode)是一種能夠唯一識別物件的整數值。在Java中,數組是一種常見的資料結構,為了方便比較和索引數組,我們經常需要計算數組的雜湊碼。 Java提供了Arrays類別的hashCode()函數,能夠快速計算數組的雜湊碼。 Arrays.hashCode()方法是一個靜態方法,它接

修復:截圖工具在 Windows 11 中不起作用 修復:截圖工具在 Windows 11 中不起作用 Aug 24, 2023 am 09:48 AM

為什麼截圖工具在Windows11上不起作用了解問題的根本原因有助於找到正確的解決方案。以下是截圖工具可能無法正常工作的主要原因:對焦助手已開啟:這可以防止截圖工具開啟。應用程式損壞:如果截圖工具在啟動時崩潰,則可能已損壞。過時的圖形驅動程式:不相容的驅動程式可能會幹擾截圖工具。來自其他應用程式的干擾:其他正在運行的應用程式可能與截圖工具衝突。憑證已過期:升級過程中的錯誤可能會導致此issu簡單的解決方案這些適合大多數用戶,不需要任何特殊的技術知識。 1.更新視窗與Microsoft應用程式商店應用程

PHP傳回一個鍵值翻轉後的陣列 PHP傳回一個鍵值翻轉後的陣列 Mar 21, 2024 pm 02:10 PM

這篇文章將為大家詳細講解有關PHP返回一個鍵值翻轉後的數組,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章後可以有所收穫。 PHP鍵值翻轉數組鍵值翻轉是一種對數組進行的操作,它將數組中的鍵和值進行交換,產生一個新的數組,其中原始鍵作為值,原始值作為鍵。實作方法在php中,可以透過以下方法對陣列進行鍵值翻轉:array_flip()函數:array_flip()函數專門用於鍵值翻轉操作。它接收一個數組作為參數,並傳回一個新的數組,其中鍵和值已交換。 $original_array=[

使用java的Arrays.deepHashCode()函數計算多維數組的雜湊碼 使用java的Arrays.deepHashCode()函數計算多維數組的雜湊碼 Jul 25, 2023 pm 04:16 PM

使用Java的Arrays.deepHashCode()函數計算多維數組的雜湊碼在Java程式設計中,我們經常需要比較兩個物件是否相等。當涉及到多維數組時,比較數組物件的內容會變得有些棘手。在這種情況下,我們可以使用雜湊碼(Hashcode)來比較陣列的內容。哈希碼是一個唯一的整數值,用於識別物件。在Java中,我們可以使用Arrays.deepHashCod

如何使用Java中的Arrays.parallelSort函數進行平行排序 如何使用Java中的Arrays.parallelSort函數進行平行排序 Jun 26, 2023 pm 04:18 PM

隨著電腦硬體的發展,我們現在可以使用多核心CPU更有效地處理資料。在Java中,我們可以利用Arrays類別中的parallelSort函數來進行平行排序,以加速資料排序的過程。首先,讓我們來看看如何使用Arrays.sort函數進行單線程排序。以下是一個簡單的例子,示範如何對一個整數陣列進行排序:importjava.util.Arrays;publi

See all articles