我想爲調試目的製作一個小功能,以可讀的格式打印變量的內容。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