復制代碼 代碼如下:
/**
* 獲取變量名
*
* @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;
}
}
}
}
復制代碼 代碼如下:
$test2 = "hello";
$countNum=0;
echo getVarName($test2);
//按道理應該輸出為”test2“,但是輸出的是"countNum",
新聞熱點
疑難解答