我有一个函数,它接受两个参数,但我希望第二个参数是可选的:
function myFunction($arg1, $arg2) {
//blah
//blah
if (isset($arg2)) {
//blah
} else {
//blah
}
}
所以,当我打电话给我时,我可能会myFunction("something")
或我可能会myFunction("something", "something else")
。
当我只包含一个参数时,PHP会发出以下警告:
警告:缺少myFunction()的参数2,...
所以它有效,但显然开发人员对它不屑一顾。
这样做是否可以,或者当我不想使用它并测试它时,我应该将""
或false
或0
传递给第二个参数使用isset()
?
我注意到很多人在JavaScript中调用函数时错过了参数,这就是为什么我要问它是否也在PHP中完成。
答案 0 :(得分:6)
通过将一些参数设置为可选/将其设为默认值来完成:
function myFunction($arg1, $arg2 = false)
然后你可以这样调用这个函数:
myFunction('something');
或
myFunction('something', 'something else');
答案 1 :(得分:3)
您可以在功能声明中设置它:
function myFunction($arg1, $arg2 = NULL) {
这样,第二个参数是可选的。请注意,可选参数必须在最后,后面不能有任何非可选参数。
答案 2 :(得分:1)
您需要在函数声明中为参数设置默认值,如下所示:
function myFunction($arg1, $arg2 = false) {
//blah
//blah
if (isset($arg2)) {
//blah
} else {
//blah
}
}
答案 3 :(得分:0)
function myFunction($ arg1,$ arg2 = null)
http://www.php.net/manual/en/functions.arguments.php#functions.arguments.default
答案 4 :(得分:0)
在函数中定义参数的默认值:
public function foo($arg1, $arg2 = 'default') {
//yourfunction
}