将函数的$var转换为字符串


convert $var of function to string?

我的目标只是调试

  function dbg($var){
       echo "you have passed $var";
    }
call dbg($test)
output:
      you have passed test
call dbg("var")
output:
      you have passed "var"
在php中,谁能帮我做这个?

如果$var是一个全局变量,试试这个:

   function dbg($var){
       echo "you have passed {$GLOBALS[$var]}";
    }

第二种情况相当简单——你传递一个字符串,你想显示这个字符串。不用担心。

但是对于第一种情况,我恐怕答案是:不,你不能。

一旦进入函数内部,PHP就不知道传递给它的变量的任何信息,除了值。

我真的看不出它会有多大价值。将代码更改为传入一个名称和一个值是很简单的,例如:

function dbg($name,$value) {
    print "You passed $name, and the value was $value";
}
dbg('test',$test);

这也不是那么好——你也可以只使用print_r()和朋友。

如果你真的想要更强大的调试工具,你应该看看xDebug。它是一个适合PHP的调试工具,它允许您逐行调试代码,并在程序运行期间的任何时刻查看变量的内容(以及许多其他优秀特性)。它还与几个流行的ide很好地集成。