PHP中的foreach作為常用到的函數,常常用來遍歷數組,對於數組中的元素是值的情形(如一般常見型的數組),foreach只是將數組中的每份元素的值拷貝到each後面的變量,也就是對值本身的拷貝,對其值進行改變並不會影響到數組本身。
如: (建議學習:PHP影片教學)
$arr = array(1, 2, 3); foreach($aa as $el){ $el =+ 100; } foreach($arr as $el){ echo $el; echo "<br/>"; } // 结果:1 2 3
但是如果是物件數組的情形,也就是數組元素均為物件時,此時each後面的變數是對物件引用的拷貝,對其進行的改變會直接影響到原始數組本身。 這點與上面情形很容易弄混。
如:
$aa = new stdClass(); $aa->name = '张三'; $bb = new stdClass(); $bb->name = '李四'; $arr = array($aa, $bb); foreach($arr as $element){ $element->name = 'qqyumidi'; } foreach($arr as $el){ echo $el->name; echo "<br/>"; } // 结果:qqyumidi qqyumidi
以上是PHP物件數組和一般數組區別的詳細內容。更多資訊請關注PHP中文網其他相關文章!