PHP函数参数 – 使用数组吗?

前端之家收集整理的这篇文章主要介绍了PHP函数参数 – 使用数组吗?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我喜欢使用key =>值对(数组)作为参数而不是单个参数来创建我的 PHP函数.

例如,我更喜欢:

function useless_func($params) {
    if (!isset($params['text'])) { $params['text'] = "default text"; }     
    if (!isset($params['text2'])) { $params['text2'] = "default text2"; }   
    if (!isset($params['text3'])) { $params['text3'] = "default text3"; }   
    echo $params['text'].$params['text2'].$params['text3'];
    return;
}

我不喜欢:

function useless_func($text = "default text",$text2 = "default text2",$text3 = "default text3") {
        echo $text.$text2.$text3;
    return;
}

我以前在wordpress代码库中广泛地看到了这样的事情.

我喜欢数组的原因:

>函数参数可以按任何顺序提供
更容易阅读代码/更多的自我记录(在我看来)
>不太容易出错,因为调用函数时,我必须调查正确的数组键

我正在与同事讨论这个问题,他说这是无用的,只是导致额外的代码,更难设置默认值.基本上他完全不同意我的意见.

我正在寻找可能能够提供洞察力的专家的一般建议和指导:做更好或更适当的方法是什么?

嗯,这很有用.但是对于一些传统的论据,总是会使用像函数some($a1,$a2)这样的经典传递.我在代码中这样做:
function getSome(SomeClass $object,array $options = array())
{
    // $object is required to be an instance of SomeClass,and there's no need to get element by key,then check if it's an object and it's an instance of SomeClass

    // Set defaults for all passed options
    $options = array_merge(array(
        'property1' => 'default1','property2' => 'default2',... => ...
    ),$options); 
}

所以,你可以看到我也喜欢这个代码风格,但是对于核心参数我更喜欢经典风格,因为PHP控制更多的东西,我应该如果我使用你的代码风格.

猜你在找的PHP相关文章