我一直在尝试在PHP中更多地使用类型提示。今天我正在编写一个带有默认参数的布尔函数,我注意到这个函数的形式如下:
function foo(boolean $bar = false) {
var_dump($bar);
}
实际上会抛出一个致命错误:
带有类类型提示的参数的默认值只能为NULL
尽管形式相似的函数
function foo(bool $bar = false) {
var_dump($bar);
}
不会。但是,两者都
var_dump((bool) $bar);
var_dump((boolean) $bar);
给出完全相同的输出
:布尔值 false
为什么会这样?这类似于Java中的包装类吗?