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

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

例如,我更喜欢:

  1. function useless_func($params) {
  2. if (!isset($params['text'])) { $params['text'] = "default text"; }
  3. if (!isset($params['text2'])) { $params['text2'] = "default text2"; }
  4. if (!isset($params['text3'])) { $params['text3'] = "default text3"; }
  5. echo $params['text'].$params['text2'].$params['text3'];
  6. return;
  7. }

我不喜欢:

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

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

我喜欢数组的原因:

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

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

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

嗯,这很有用.但是对于一些传统的论据,总是会使用像函数some($a1,$a2)这样的经典传递.我在代码中这样做:
  1. function getSome(SomeClass $object,array $options = array())
  2. {
  3. // $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
  4.  
  5. // Set defaults for all passed options
  6. $options = array_merge(array(
  7. 'property1' => 'default1','property2' => 'default2',... => ...
  8. ),$options);
  9. }

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

猜你在找的PHP相关文章