函数参数 - 数组默认值| 最佳实践

Una*_*rai 7 php arguments

定义数组的默认/回退值的最佳做法是什么?

描述:

我的函数接受2个参数.其中一个是可供选择的一系列选项.如果尚未传递数组,则它具有默认/回退值,如示例所示:

public function selectName($howMany = 1, $seed = ['john', 'bob', 'mark', 'cindy']){...
Run Code Online (Sandbox Code Playgroud)

支持问题:

a)将填充数组存储在默认参数中是个好主意吗?

b)哪个更好,一个常数array_merge,if(empty...

Hal*_*nis 4

由于默认值与所有对象共享,因此最好将它们标记为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)