<?php
header("Content-Type: text/html;charset=utf-8"); //告诉浏览器编码
function GetVarName(&$var, $scope=null){
$scope = $scope==null? $GLOBALS : $scope; // 如果没有范围则在globals中找寻
// 因有可能有相同值的变量,因此先将当前变量的值保存到一个临时变量中,然后再对原变量赋唯一值,以便查找出变量的名称,找到名字后,将临时变量的值重新赋值到原变量
$tmp = $var;
$var = 'tmp_value_'.mt_rand();
$name = array_search($var, $scope, true); // 根据值查找变量名称
$var = $tmp;
return $name;
}
function SeeVar(&$var){
if(is_array($var)){SeeArray($var);return;}
if(is_string($var))$var="'".$var."'";
if(is_bool($var)){if($var)$var='true';else $var='false';}
echo '<div style="padding:0.3em 0 0.3em 0">';
echo '$'.GetVarName($var).'='.$var;
echo '</div>';
}
function SeeArray(&$arr,$open=true){
if(!is_array($arr))return;
if($open)$open='open';else $open='';
$arrName=GetVarName($arr);
echo "<details $open
style='display:inline-block;vertical-align:text-top;
'><summary>Array $arrName</summary>";
foreach($arr as $k => $v){
if(is_string($k))$k="'".$k."'";
if(is_array($v)){
echo "<div style=\"padding:0 0 0 1.2em;\">";
echo "[$k] =>";
SeeArray($v);
echo "</div>";
continue;
}
echo "<div style='padding:0 0 0 1.2em;'>
[$k] => $v
</div>";
}
echo "</details><br/>";
}
$testArray=[1,2,'color'=>'red','food'=>['面包','馒头']];
SeeVar($testArray);
?>
输出样式: