0

检查函数中可选参数类型的最佳方法是什么?到目前为止,我看到的每个示例都是下面的样式 2。这是比选项 1 更好的方法,还是仅仅因为您不能直接检查参数中的某些内容?如果它被传递,我需要我的可选参数是一个数组。

1)

public function foo($reqData, array $optData = NULL) {
  ...
  if ($optData) {
    foreach ($optData...
  }
}

或 2)

public function foo($reqData, $optData = NULL) {
  ...
  if (is_array($optData)) {
    foreach ($optData...
  }
}
4

2 回答 2

0

第二个选项通常更可取,因为如果你传入的不是数组,你会得到一个致命错误:

function foo1 (array $opt) { var_dump($opt); }
function foo2 ($opt = null) { var_dump($opt); }

foo2(array('bar')); // dumps out an array with 'bar' in it
foo1('bar'); // catchable fatal error

如果 PHP 有函数重载,那将不是问题

于 2013-04-29T19:57:30.107 回答
0

OOP 的一个兴趣是添加约束以避免错误。如果你遵循这个想法,第一种方法似乎更好。

许多 PHP 开发人员没有像在 C 中那样使用严格的编码,因为 PHP 本质上是灵活/宽容的,并且不习惯成为最严格的限制。

于 2013-04-29T19:57:37.223 回答