Я пытаюсь использовать тип hinting больше в 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);
дают точный результат
: boolean false
Почему это? Является ли это похожим на классы оболочки в Java?