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

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

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

copy下來后發現這個怎么測試結果有時候對有時候不對,想了很久,終于弄明白,雖然很簡單,但是自己還是記錄下,希望遇到同樣情況的同學注意。
比如:現在我測試
復制代碼 代碼如下:
$test2 = "hello";
$countNum=0;
echo getVarName($test2);
//按道理應該輸出為”test2“,但是輸出的是"countNum",

因為函數中的
if ($src == $v) 這里存在問題 比如$src="hello", $GLOBALS里面有個變量$countNUm=0;
這時在循環的時候判斷 if ($src == $v) ,即"hello"==0,比較的結果為true,類型轉換的時候“hello“轉為整形為0,
然后就退出循環了,得到錯誤的結果。
一個解決辦法就是 if ($src == $v) 改為 if($src===$v),即恒等。
如果我理解錯了歡迎您指正,一起進步。

php技術PHP中獲取變量的變量名的一段代碼的bug分析,轉載需保留來源!

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

主站蜘蛛池模板: 交换:年轻夫妇-HD中文字幕 | 伊人久久精品午夜 | 欧美性最猛xxxx在线观看视频 | 网址在线观看你懂我意思吧免费的 | 精品国产自在天天线2019 | 亚洲乱码AV久久久久久久 | 久久99综合国产精品亚洲首页 | 亚洲精品久久无码AV片银杏 | 国产午夜精品自在自线之la | 秋霞av伦理片在线观看 | 色偷偷超碰97人人澡人人 | 国产成人99久久亚洲综合精品 | 丰满人妻妇伦又伦精品APP国产 | 精品亚洲大全 | 夜夜躁婷婷AV蜜桃视频 | 亚洲精品高清在线 | 国产成人片视频一区二区青青 | ewp系列虐杀在线视频 | 国产午夜一级鲁丝片 | 精品国产国产精2020久久日 | 51国产午夜精品免费视频 | 伊人网综合网 | 18禁无遮挡羞羞污污污污免费 | 97超碰97资源在线观看 | 国产免费69成人精品视频 | 91久久精品国产亚洲 | 国产传媒精品1区2区3区 | 欧美日韩看看2015永久免费 | 嗯好舒服嗯好大好猛好爽 | 搞av.com| 最新高清无码专区在线视频 | 日韩精品无码视频一区二区蜜桃 | 本庄优花aⅴ全部在线影片 被滋润的艳妇疯狂呻吟白洁老七 | 青柠在线视频 | 秘密影院久久综合亚洲综合 | 久久精品一区二区三区资源网 | 无人区国产片 | 少妇一夜未归暴露妓女身份 | 99久久久精品免费观看国产 | 国产亚洲精品久久久久久白晶晶 | 秋霞伦理手机在线看片 |