我的意思是,你如何将你的参数传递给函数?
您的用户函数调用是这样的:
$this->getSomeNumber($firstArg, $secondArg, null);
或者您是否检测到有多少参数传递给该函数然后完成工作?
我想知道是否有任何编码风格覆盖这一点。其他编程语言如何处理这个?
更新
那些不明白的人:
function doSmth($firstArgument) {
if(func_num_args() > 1) {
//do job if second argument was passed
}
}
第二个例子:
function doSmthElse($firstArgument, $secondArgument) {
if($secondArgument) {
//do job if second argument was passed
}
}
然后你称之为:
doSmth($var, $secondvar) or doSmth($var)
//**OR**
doSmthElse($var, $secondvar) or doSmthElse($var, null)
哪个更好用?我的意思是其他程序员对你有什么期望?
答案 0 :(得分:1)
如果参数为可选,请使用默认值正常指定:
function foo($requiredArg, $optionalArg = null)
如果函数采用多个可选参数,请明确指定它们,如上例所示。
如果函数采用可变数量的参数(例如sprintf),则使用func_get_args&共
/**
* Specify here as a comment that this function takes a variable amount of args
*/
function doSomethingWithParameters() {
...
}
如果函数采用所需参数和可变数量的参数,则应用相同的方法:明确指定所需的参数,如第一个示例中所示。
使用注释来澄清变量args等总是一个好主意。使用数组可能是一个更好的主意,但这可能取决于你正在做什么。
答案 1 :(得分:0)
你想在那些args之前找到美元符号:
$this->getSomeNumber($firstArg, $secondArg, null);
但如果您真的在询问如何在php中使用可变数量的参数,请参阅帮助中的func_num_args和func_get_args。