定义数组的默认/回退值的最佳做法是什么?
描述:
我的函数接受2个参数.其中一个是可供选择的一系列选项.如果尚未传递数组,则它具有默认/回退值,如示例所示:
public function selectName($howMany = 1, $seed = ['john', 'bob', 'mark', 'cindy']){...
Run Code Online (Sandbox Code Playgroud)
支持问题:
a)将填充数组存储在默认参数中是个好主意吗?
b)哪个更好,一个常数array_merge,if(empty...?
由于默认值与所有对象共享,因此最好将它们标记为static. 建议将
可见度降低至protected
class YourClass {
protected static $_DEFAULT_SEED = array('john', 'bob', 'mark', 'cindy');
protected static $_DEFAULT_QUANTITY = 1;
public function selectName($howMany = NULL, $seed = NULL){
if (is_null($howMany)) {
$howMany = self::$_DEFAULT_QUANTITY;
}
if (is_null($seed)) {
$seed = self::$_DEFAULT_SEED;
}
//...
}
}
Run Code Online (Sandbox Code Playgroud)