PHP:我什么时候应该检查数组的可选参数类型?

时间:2013-04-29 19:39:04

标签: php arrays parameters null optional

检查函数中可选参数类型的最佳方法是什么?到目前为止我见过的每个例子都是下面的样式2。这是比选项1更好的方法,还是仅仅因为你不能直接检查参数中的某些东西?如果传递,我需要我的可选参数作为数组。

1)

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

OR 2)

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

2 个答案:

答案 0 :(得分: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有函数重载,那就不是问题了

答案 1 :(得分:0)

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

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