gpt4 book ai didi

php - 声明一个可选的数组参数

转载 作者:行者123 更新时间:2023-12-04 02:22:06 25 4
gpt4 key购买 nike

我想知道将默认数组值设置为空数组或 NULL 是否有任何区别。

例如:

function arrayTest(array $array = array()) {
if(!empty($array)) {
// Do something
}
}

function arrayTest(array $array = NULL) {
if(!empty($array)) {
// Do something
}
}

我注意到第一个示例不允许传递 NULL 值,而第二个示例允许传递 NULL 值是因为类型转换。

还有其他区别吗?应该使用哪一个?

最佳答案

另一个区别是,如果您不传递参数,它将默认为 array()null,这是两个截然不同的值。你当然可以检查一下,但你需要考虑到它。 empty 对两者都有效,但对 null 的 foreach 循环效果不佳,各种数组函数也会失败。

您注意到的是正确的:只有在声明中添加 = null 时,为类型提示参数传递 null 才有效。这不仅适用于数组,也适用于对象。在 PHP 中,PHP 无法创建强制但可以为空的类型提示参数。只要将 =null 添加到声明中,就可以传递 null,但也可以省略参数。

如果对您来说空数组和 null 在逻辑上没有区别,我会选择第一种默认为空数组的方法。然后至少你会知道输入总是一个数组。我认为这为函数的实现者和使用它的程序员都增加了清晰度。但我想这只是一个意见,甚至不是一个强有力的意见。

我的主要建议是根本不要将参数设为可选。根据我的经验,这会使此类函数的用法变得不清楚,尤其是随着代码的增长和添加更多参数。

关于php - 声明一个可选的数组参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27732614/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com