PHP中foreach迴圈傳值問題

2022-03-18 17:48:34 字數 804 閱讀 8804

首先看一段**:

<?php

$a=array('ab','cd','ef');

$count=3;

foreach($a as $key=>$value)

foreach($a as $key=>$value)

?>

輸出結果是什麼呢?:

string(2) "ab"

string(2) "cd"

string(2) "ef"

我明明在foreach迴圈中對陣列的value進行了改變,但是輸出為什麼沒有變化呢?

接下來我們來乙個可以讓他發生變化的迴圈操作:

<?php

$a=array('ab','cd','ef');

$count=3;

foreach($a as $key=>&$value)

foreach($a as $key=>$value)

?>

沒錯,和c++中傳遞引用簡直一模一樣。我們來看一下輸出結果:

string(6) "abcdef"

string(6) "abcdef"

string(6) "abcdef"

總結:在foreach迴圈中,他遍歷的實際上是原來陣列的乙個複製,你對他的任何操作都是對陣列的複製進行的操作,也就是說不會對原陣列造成任何影響。

那麼如何造成影響呢?我認為至少有兩種方案,已給出一種,即使用原陣列的引用。還有一種方式就是在foreach迴圈中用原陣列進行操作。就是這

樣:a[$key]='fsdada';

PHP中的foreach迴圈

php中的foreach語句,常用於遍歷陣列。foreach一般有兩種使用方式 1 只取陣列的值,不取陣列的下標 2 取陣列值,同時也取陣列的下標 以下面的例1和例2來解釋其用法 例1 只取值,不取下標 member array 201201 tom 201203 jack 201211 james...

PHP中foreach迴圈語句

一 語法 foreach array expression as value statement foreach array expression as key value statement foreach語句將遍歷陣列 array expression,每次迴圈時,將當前陣列中的值賦值給 val...

PHP中的foreach迴圈

1 只取陣列的值,不取陣列的下標 取值的形式 foreach array expressionas value statement 遍歷給定的 array expression 陣列。每次迴圈中,當前單元的值被賦給 value 並且陣列內部的指標向前移一步 2 取陣列值,同時也取陣列的下標 取鍵值對...