嘿所以我厌倦了写作
echo "varname message";
var_dump(variable);
所以我写了这个
function debugger($var, $message) {
echo $message;
var_dump($var);
echo "<br />";
}
这似乎工作得很好,除非它在一个函数中。然后它就像它不知道有一个函数定义,因为它定义在函数外部。像这样。
function blah() {
$x = 2;
debugger($x, "this is x");
}
另外,我不懂函数,我知道你不能在函数之外的函数中引用某些东西而不返回它,但我不知道你不能在函数之外引用变量或函数而不设置它们作为参数。我想我有这个错误。
还有一件事,这是否意味着函数内部的变量不会与函数外部的变量冲突,除非它返回?
答案 0 :(得分:0)
您的代码应该有效。您的代码中还有其他错误。尝试更准确地了解哪些不起作用并尝试隔离您的问题。至于你的其他问题:
函数中定义的变量作用于该函数,不会干扰其他函数的变量。它们也无法访问函数外部定义的变量。例如
$a = 5;
function foo() {
echo $a; //This will not work
}
如果您不想将变量作为参数传递,可以使用global
关键字将“变量”“包含”到函数的作用域中:
$a = 5;
function foo() {
global $a;
echo $a;
}
或者因为某个版本的PHP(不确定哪个,如果有人知道请编辑),您可以使用use
:
$a = 5;
function foo() use ($a) {
echo $a;
}