我想为调试目的制作一个小功能,以可读的格式打印变量的内容。PHP - 如何获取变量的名称?
该功能是基于CakePHP的框架中发现的pr()
快捷方式,即this one:
我有这个至今:
function pr($var,$msg){
$pr_debug=true;
if($pr_debug){
echo "<pre>";
if($msg) echo "<b>".$msg.": </b>";
if(gettype($var)=="array" || gettype($var)=="object") echo "<br>";
print_r($var);
echo "</pre>";
}
}
它打印内容的变量之前的可选消息($ MSG) 。
但我想补充一下,就是如果没有发送消息,同时打印变量的名称为这样的消息,所以我能得到这样的事情:
$myvar="hello";
pr($myvar);
//应该输出:
myvar: hello
所以在我的函数中,我怎样才能得到变量的名称作为一个字符串,所以我可以输出它? 即与pr($foo);
我需要"foo"
, $name="biz"; pr($$name);
我需要"biz",
等等...
最好我想要的东西,尽管PHP全局配置或任何的那个(其中的方式,我不十分了解,将工作好吧,所以对GLOBALS的任何帮助将非常感激)。
谢谢!
额外:在这里在stackoverflow,我如何格式化源代码来获取PHP格式和颜色?截至目前,我simpy使用工具栏在textarea,并选择“代码示例”...
您应该接受一个字符串作为输入而不是变量,然后使用'$$ var'获取变量的值并使用'$ var'获取名称的变量。 – 2013-04-10 20:20:04
认识到当你有一个函数'function foo($ a)'时,'$ a'最初可能是函数,代数表达式,文字值或任何未命名的东西的返回值变量。 – 2013-04-10 20:25:02
我试图概述一些为什么这是不是这样一个有用的想法对老问题的一些原因:http://stackoverflow.com/a/15936154/157957 – IMSoP 2013-04-10 21:05:50