0
我可以通过多种方式来实现以下功能;但我希望有一个超级优雅的解决方案。我可以使用PHP超全局变量作为用户定义函数参数的默认值吗?在PHP中使用Superglobal作为默认函数参数
实施例:
function test1($foo=$_SERVER['PATH']) {
echo $foo;
}
上面的代码吐出一个错误。就像我说的,我知道我可以用下面的代码实现同样的事情(但上面的代码是更具吸引力):
function test2($foo) {
if (!isset($foo)) $foo = $_SERVER['PATH'];
echo $foo;
}
感谢您的帮助!
我相信第一个解决方案不会工作,因为在脚本评估时(类似于解释语言的编译),$ _SERVER ['PATH']'值尚未定义。 –
这听起来似乎合理; PHP引擎吐出的错误是“解析错误:语法错误,第2行M:\ test.php中出现意外的T_VARIABLE”您认为该错误与您的解释是否一致? – lukeavsec
我会说它的确如此。一个变量(一个运行时元素)在静态上下文(一个“编译”时间元素)中可能没有意义。 –