我最近一直在做很多 Objective-C 编程,现在我回到 PHP,说实话,我很怀念命名参数(起初我讨厌它们,现在我喜欢它们,去图)。
无论如何,在 PHP 中,我有时会看到人们将数组传递给函数作为命名参数的伪方式(还有不必担心顺序的额外好处),但有时这会使函数编写过于复杂。此外,有时我想用命名参数调用函数,但有时不这样做更容易、更快捷。
有没有人简单地做这样的事情:
function calculateArea( $width, $height ) {
// do calculations here...
}
// and then call the function like so:
calculateArea( $width = 10, $height = 5 );
它似乎工作正常,至少在我的 PHP 版本中,我想知道其他人是否也使用这种技术作为命名参数的解决方法。我也想知道是否有人知道我不应该这样做的一些令人信服的理由。
谢谢!
更新:
感谢大家的快速回复。为了让事情更清楚,我只想说我知道在大多数情况下传递关联数组是一个更好的选择,但有时你正在使用你已经编写的函数并且你不想改变它们的方式在代码的每个部分中调用。此外,有时您正在使用辅助框架,并且您无法控制函数的编写方式。
如果我正在查看我一年前编写的代码并且我看到:echo $zc->expand('Foo', 'Bar', 10, 1, 0, null, null, array('class'=>'code'), false);
,那不是很有帮助。
所以,为了改写我的问题,我基本上是在问这个:
有时通过赋值将参数传递给函数更容易阅读。这样做有什么缺点,它适用于所有版本的 PHP 吗?