php foreach循環(huán)中使用引用的問題
更新時間:2013年11月06日 10:40:56 作者:
本文來給大家介紹php foreach循環(huán)中使用引用問題分析與注意事項,希望此文章對各位同學會有所幫助
看代碼,再做解釋
<?php
$array=array('a','b','c','d');
foreach($array as $key=>$val){
//do something
}
echo $val;//輸出d
echo $kay;//輸出3
$val='e';
print_r($array);//輸出Array ( [0] => a [1] => b [2] => c [3] => d )
?>
在foreach循環(huán)中,當循環(huán)結(jié)束后,$key和$val變量都不會自動釋放掉。值會被保留下來。
當foreach使用引用的情況下,會出現(xiàn)如下的情況,需要注意。
<?php
$array=array('a','b','c','d');
foreach($array as $key=>&$val){//使用引用
//do something
}
echo $val;//輸出d
echo $kay;//輸出3
$val='e';
print_r($array);//輸出Array ( [0] => a [1] => b [2] => c [3] => e )
?>
當$val變量使用&引用后,當執(zhí)行foreach循環(huán)結(jié)束后,$val指向了和$arrar[3]相同的內(nèi)存地址。
當foreach循環(huán)結(jié)束后$val變量還是存在的,所以在foreach循環(huán)結(jié)束后改變$val的值,就相當于改變了$arrar[3]的值。
復制代碼 代碼如下:
<?php
$array=array('a','b','c','d');
foreach($array as $key=>$val){
//do something
}
echo $val;//輸出d
echo $kay;//輸出3
$val='e';
print_r($array);//輸出Array ( [0] => a [1] => b [2] => c [3] => d )
?>
在foreach循環(huán)中,當循環(huán)結(jié)束后,$key和$val變量都不會自動釋放掉。值會被保留下來。
當foreach使用引用的情況下,會出現(xiàn)如下的情況,需要注意。
復制代碼 代碼如下:
<?php
$array=array('a','b','c','d');
foreach($array as $key=>&$val){//使用引用
//do something
}
echo $val;//輸出d
echo $kay;//輸出3
$val='e';
print_r($array);//輸出Array ( [0] => a [1] => b [2] => c [3] => e )
?>
當$val變量使用&引用后,當執(zhí)行foreach循環(huán)結(jié)束后,$val指向了和$arrar[3]相同的內(nèi)存地址。
當foreach循環(huán)結(jié)束后$val變量還是存在的,所以在foreach循環(huán)結(jié)束后改變$val的值,就相當于改變了$arrar[3]的值。
您可能感興趣的文章:
- PHP的foreach中使用引用時需要注意的一個問題和解決方法
- php使用ZipArchive提示Fatal error: Class ZipArchive not found in的解決方法
- PHP has encountered a Stack overflow問題解決方法
- 為PHP安裝imagick時出現(xiàn)Cannot locate header file MagickWand.h錯誤的解決方法
- ThinkPHP做文字水印時提示call an undefined function exif_imagetype()解決方法
- thinkphp視圖模型查詢提示ERR: 1146:Table ''db.pr_order_view'' doesn''t exist的解決方法
- PHP錯誤Warning: Cannot modify header information - headers already sent by解決方法
- php foreach正序倒序輸出示例代碼
- PHP中多維數(shù)組的foreach遍歷示例
- php中如何使對象可以像數(shù)組一樣進行foreach循環(huán)
- 深入解析php中的foreach問題
- php下foreach提示W(wǎng)arning:Invalid argument supplied for foreach()的解決方法
相關(guān)文章
Server.HTMLEncode讓代碼在頁面里顯示為源代碼
這篇文章為大家介紹的是把寫入數(shù)據(jù)庫的html源代碼以html源編碼的形式顯示在頁面里面,這個是asp中的函數(shù)2013-12-12
thinkphp使用url請求調(diào)用ThinkApi天氣教程【圖文詳解】
這篇文章主要介紹了thinkphp使用url請求調(diào)用ThinkApi天氣的方法,結(jié)合實例形式詳細分析了thinkphp服務市場接口的注冊、接口調(diào)用、信息發(fā)送、獲取相關(guān)操作技巧與注意事項,需要的朋友可以參考下2023-07-07
PHP彈出提示框并跳轉(zhuǎn)到新頁面即重定向到新頁面
本文為大家介紹下使用PHP彈出提示框并跳轉(zhuǎn)到新頁面,也就是大家所認為的重定向,下面的示例大家可以參考下2014-01-01
PHP中文URL編解碼(urlencode()rawurlencode()
PHP中對于URL進行編碼,可以使用 urlencode() 或者 rawurlencode(),二者的區(qū)別是前者把空格編碼為 '+',而后者把空格編碼為 '%20',不過應該注意的是,在編碼時應該只對部分URL編碼,否則URL中的冒號和反斜杠也會被轉(zhuǎn)義。2010-07-07
解析PHP將對象轉(zhuǎn)換成數(shù)組的方法(兼容多維數(shù)組類型)
本篇文章是對PHP將對象轉(zhuǎn)換成數(shù)組的方法(兼容多維數(shù)組類型)進行了詳細的分析介紹,需要的朋友參考下2013-06-06
PHP配合微信小程序?qū)崿F(xiàn)獲取手機號碼詳解
這篇文章主要為大家詳細介紹了PHP如何配合微信小程序?qū)崿F(xiàn)獲取手機號碼功能,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學習一下2022-08-08
PHP+Javascript實現(xiàn)在線拍照功能實例
這篇文章主要介紹了PHP+Javascript實現(xiàn)在線拍照功能的方法,涉及javascript插件的使用及php圖片上傳的相關(guān)實現(xiàn)技巧,具有一定參考借鑒價值,需要的朋友可以參考下2015-07-07

