php foreach迴圈中使用引用的問題

2022-10-09 19:30:21 字數 768 閱讀 7558

看**,再做解釋

複製** **如下:

<?php

$array=array('a','b','c','d');

foreach($array as $key=>$val)

echo $val;//輸出d

echo $kay;//輸出3

$val='e';

print_r($array);//輸出array ( [0] => a [1] => b [2] => c [3] => d )

?>

在foreach迴圈中,當迴圈結束後,$key和$val變數都不會自動釋放掉。值會被保留下來。

當foreach使用引用的情況下,,會出現如下的情況,需要注意。

複製** **如下:

<?php

$array=array('a','b','c','d');

foreach($array as $key=>&$val)

echo $val;//輸出d

echo $kay;//輸出3

$val='e';

print_r($array);//輸出array ( [0] => a [1] => b [2] => c [3] => e )

?>

當$val變數使用&引用後,當執行foreach迴圈結束後,$val指向了和$arrar[3]相同的記憶體位址。

當foreach迴圈結束後$val變數還是存在的,所以在foreach迴圈結束後改變$val的值,就相當於改變了$arrar[3]的值。

php foreach迴圈中使用引用的問題

看 再做解釋 複製 如下 array array a b c d foreach array as knqbmgey val echo val 輸出d echo kay 輸出3 val e print r array 輸出array 0 a 1 b 2 c 3 d 在foreach迴圈中,當迴圈結束...

巢狀for迴圈中使用標號

可以給語句塊加標號賦予它們名稱,標號位於語句之前。標號只能被continue和break引用。格式如下 label statement 語句前只允許加乙個標號,標號後面不能跟大括號。通過用break後加標號對處於標號中的語句進行控制。往往標號後是for.while.do while等迴圈。通過用標號...

flex在for迴圈中使用setTimeout

有時候我們需要在flex中使用延時載入的功能,下面我簡單記錄一下如何在for迴圈中使用flex延時載入方法settimeout的用法 方法如下 flash.utils.settimeout closure function,delay number,parameters uint 引數詳解 clos...