コードをコピー コードは次のとおりです:
/**
* 変数名を取得
*
* @param $string
* @return $string
*
* $test = "helo"
* $test2 = "こんにちは";
* 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 の名前は $k
";
//変数の値を復元します
$src = $save;
return $k;
}
}
}
}
コードをコピーします コードは次のとおりです:
$test2 = "hello" ;
$countNum=0;
echo getVarName($test2);
// 論理的には "test2" となるはずですが、出力は "countNum"、