函数中的PHP变量范围
我希望test(setVar())的输出为“Value 2”,但在setVar()中不返回$var。这可能吗?不要使用函数中的PHP变量范围,php,function,variables,scope,Php,Function,Variables,Scope,我希望test(setVar())的输出为“Value 2”,但在setVar()中不返回$var。这可能吗?不要使用global从不使用全局。请改用引用: $var = "Value 1"; function setVar() { global $var; $var = "Value 2"; } function test($someVar) { echo $someVar; } test($var); setVar不返回任何内容,因此您没有向test函数传
global
从不使用全局
。请改用引用:
$var = "Value 1";
function setVar() {
global $var;
$var = "Value 2";
}
function test($someVar) {
echo $someVar;
}
test($var);
setVar
不返回任何内容,因此您没有向test
函数传递任何内容。如果您想在test
函数中打印$var
,为什么不打印它而不是$someVar
?如果setVar
没有返回任何内容,那么与test
有什么关系?好的,那么我该如何编写它以使setVar返回$var?问题是,在我的“正确”代码中(这太复杂了,无法放在这里),setVar()返回其他内容,我只需要setVar函数外部可用的$var值,这样我就可以将它作为参数传递给test()。很抱歉这么愚蠢,但我一整天都在这么做:(无论你想做什么,你都需要重新构造。函数是简单的输入输出设备,有一些模式可以使用。不可能说你实际上要解决什么问题以及如何最好地解决它,但你在这里要做的不是它。好的,我稍微修改了代码,以便测试()现在使用参数$var而不是setVar执行,因为我意识到这很愚蠢,因为它没有返回任何东西(感谢您指出这一点)。我如何将$var to=“Value 2”,置于setVar函数之外?感谢大家的帮助,并为自己的愚蠢感到抱歉?
$var = "Value 1";
function setVar(&$x)
{
$x = "Value 2";
}
function test($y)
{
echo $y;
}
setVar($var);
test($var);