天天躁日日躁狠狠躁AV麻豆-天天躁人人躁人人躁狂躁-天天澡夜夜澡人人澡-天天影视香色欲综合网-国产成人女人在线视频观看-国产成人女人视频在线观看

PHP中獲取變量的變量名的一段代碼的bug分析

復(fù)制代碼 代碼如下:
/**
* 獲取變量名
*
* @param $string
* @return $string
*
* $test = "helo";
* $test2 = "helo";
* getVarName($test2);
*/
function getVarName(&$src){
//存儲(chǔ)當(dāng)前變量值
$save = $src;
//存儲(chǔ)所有變量值
$allvar = $GLOBALS;
//在函數(shù)中不要直拉遍歷$GLOBALS,會(huì)出現(xiàn)堆棧問(wèn)題
foreach($allvar as $k=>$v){
//變量值相同,可能不是相同變量,因多個(gè)變量的值可能相同
if ($src == $v){
//改變當(dāng)前變量$src的值
$src = 'change';
//如果$GLOBALS[$k]也跟著改變,那就是同一個(gè)變量。
if ($src == $GLOBALS[$k]){
//echo "/$$k name is $k
";
//還原變量值
$src = $save;
return $k;
}
}
}
}

copy下來(lái)后發(fā)現(xiàn)這個(gè)怎么測(cè)試結(jié)果有時(shí)候?qū)τ袝r(shí)候不對(duì),想了很久,終于弄明白,雖然很簡(jiǎn)單,但是自己還是記錄下,希望遇到同樣情況的同學(xué)注意。
比如:現(xiàn)在我測(cè)試
復(fù)制代碼 代碼如下:
$test2 = "hello";
$countNum=0;
echo getVarName($test2);
//按道理應(yīng)該輸出為”test2“,但是輸出的是"countNum",

因?yàn)楹瘮?shù)中的
if ($src == $v) 這里存在問(wèn)題 比如$src="hello", $GLOBALS里面有個(gè)變量$countNUm=0;
這時(shí)在循環(huán)的時(shí)候判斷 if ($src == $v) ,即"hello"==0,比較的結(jié)果為true,類(lèi)型轉(zhuǎn)換的時(shí)候“hello“轉(zhuǎn)為整形為0,
然后就退出循環(huán)了,得到錯(cuò)誤的結(jié)果。
一個(gè)解決辦法就是 if ($src == $v) 改為 if($src===$v),即恒等。
如果我理解錯(cuò)了歡迎您指正,一起進(jìn)步。

php技術(shù)PHP中獲取變量的變量名的一段代碼的bug分析,轉(zhuǎn)載需保留來(lái)源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 中文字幕一区在线观看视频 | 国产美女视频一区二区二三区 | 一级做a爰片久久毛片苍井优 | 老师掀开短裙让我挺进动态 | 伊人久久综在合线影院 | 全免费a级毛片免费看 | 毛片基地看看成人免费 | 在线 国产 欧美 亚洲 天堂 | 91精品欧美一区二区三区 | 99婷婷久久精品国产一区二区 | 国产成人精品久久一区二区三区 | 男的插曲女的下面免费APP | china chinese中国人玩 | 亚洲一区免费看 | 香蕉97超级碰碰碰碰碰久 | 亚洲在线成色综合网站 | 国语对白嫖老妇胖老太 | 久久a在线视频观看 | 优菈的乳液狂飙天堂W98 | 小sao货水好多真紧h的视频 | 久久青草影院 | 热巴两次用约老师屁股发底线球 | 亚洲日产2020乱码草莓毕 | 国产 亚洲 中文字幕 久久网 | 十九禁啊啪射视频在线观看 | 披黑人猛躁10次高潮 | 波多结衣一区二区三区 | 日本无码免费久久久精品 | 年轻夫妇韩剧中文版免费观看 | 裸妇厨房风流在线观看 | 推倒美女总裁啪啪 | 国产精品久久久久影院色老大 | 最新亚洲一区二区三区四区 | 久久久乱码精品亚洲日韩 | 青青伊人国产 | 天堂Av亚洲欧美日韩国产综合 | qvod 韩国| 黄色网址在线播放 | 久久久国产精品免费A片3D | 日韩丰满少妇无码内射 | 奇米狠狠干 |