时间:2021-07-01 10:21:17 帮助过:13人阅读
输出的是"countNum",
- <br>/** <br>* 获取变量名 <br>* <br>* @param $string <br>* @return $string <br>* <br>* $test = "helo"; <br>* $test2 = "helo"; <br>* getVarName($test2); <br>*/ <br>function getVarName(&$src){ <br>//存储当前变量值 <br>$save = $src; <br>//存储所有变量值 <br>$allvar = $GLOBALS; <br>//在函数中不要直拉遍历$GLOBALS,会出现堆栈问题 <br>foreach($allvar as $k=>$v){ <br>//变量值相同,可能不是相同变量,因多个变量的值可能相同 <br>if ($src == $v){ <br>//改变当前变量$src的值 <br>$src = 'change'; <br>//如果$GLOBALS[$k]也跟着改变,那就是同一个变量。 <br>if ($src == $GLOBALS[$k]){ <br>//echo "\$$k name is $k <br>"; <br>//还原变量值 <br>$src = $save; <br>return $k; <br>} <br>} <br>} <br>} <br> <br>copy下来后发现这个怎么测试结果有时候对有时候不对,想了很久,终于弄明白,虽然很简单,但是自己还是记录下,希望遇到同样情况的同学注意。 <br>比如:现在我测试 <br><span><u></u></span> 代码如下:<pre class="brush:php;toolbar:false layui-box layui-code-view layui-code-notepad"><ol class="layui-code-ol"><li><br>$test2 = "hello"; <br>$countNum=0; <br>echo getVarName($test2); <br>//按道理应该</li></ol></pre>输出为”test2“,但是