Тип подсказки
PHP 5 вводит Type Hinting. Теперь функции могут заставить объекты быть объектами (путем указания имени класса в прототипе функции) или массивов (начиная с PHP 5.1). Однако, если NULL используется как значение параметра по умолчанию, он будет разрешен в качестве аргумента для любого последующего вызова.
Следующая выдержка из вышесказанного:
если в качестве значения по умолчанию используется значение NULL, оно будет разрешено в качестве аргумента для любого последующего вызова.
Означает ли это следующее:
если использовать параметры по умолчанию для использования с типом hinting, он может иметь только значение NULL в качестве значения по умолчанию.
то есть. код в коде1 неверен и приводит к:
Неустранимая ошибка: значение по умолчанию для параметров с подсказкой типа класса может быть только NULL
code1:
function setName ( string $name = "happ") {
...
}
Если код в коде2 прав:
code2:
function setName ( string $name = NULL) {
...
}
Почему это ограничение назначено в php?