我的意思是,如何将参数传递给函数?
你的用户函数调用是这样的吗?
$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)
哪个更好?我的意思是其他程序员对你有什么期望?
如果参数是可选的,通常使用默认值指定:
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() {
...
}
如果函数接受必需的形参和可变数量的形参,则采用相同的方法:像第一个示例那样显式指定始终需要的形参。
使用注释来澄清变量参数等总是一个好主意。使用数组可能是一个更好的主意,但这可能取决于您在做什么。
你需要在这些参数前加上美元符号:
$this->getSomeNumber($firstArg, $secondArg, null);
但如果你真的想知道如何在php中使用可变数量的参数,请参阅帮助中的func_num_args和func_get_args。