检查函数中可选参数类型的最佳方法是什么?到目前为止我见过的每个例子都是下面的样式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...
}
}
答案 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本质上是灵活/允许的,并且没有习惯成为最严格的。