我对PHP函数的默认值感到困惑.说我有这样的功能:
function foo($blah, $x = "some value", $y = "some other value") {
// code here!
}
Run Code Online (Sandbox Code Playgroud)
如果我想使用$ x的默认参数并为$ y设置不同的参数,该怎么办?
我一直在尝试不同的方式,我只是变得更加困惑.例如,我尝试了这两个:
foo("blah", null, "test");
foo("blah", "", "test");
Run Code Online (Sandbox Code Playgroud)
但是这两个都不会导致$ x的正确默认参数.我也尝试用变量名设置它.
foo("blah", $x, $y = "test");
Run Code Online (Sandbox Code Playgroud)
我完全期望这样的事情能发挥作用.但它根本无法实现.似乎无论我做什么,每次调用函数时,我都必须最终输入默认参数.而且我必须遗漏一些明显的东西.
在PHP中,如果我有一个这样的函数
function example($argument1, $argument2="", $argument3="")
Run Code Online (Sandbox Code Playgroud)
我可以在其他地方调用此函数
example($argument1)
Run Code Online (Sandbox Code Playgroud)
但是,如果我想给thrid参数赋予一些价值,我应该这样做
example($argument1, "", "test");
Run Code Online (Sandbox Code Playgroud)
要么
example($argument1, NULL, "test");
Run Code Online (Sandbox Code Playgroud)
我认为两者都会奏效,但更好的方法是什么?因为将来如果在main函数中更改$ argument2的值并且如果我有"",那么会有任何问题吗?或NULL是最好的选择?
谢谢