Подсказка типа: параметры по умолчанию

Подсказка типов в PHP 5

В PHP 5 появилась подсказка типов. Функции теперь могут принудительно превращать параметры в объекты ( путем указания имени класса в прототипе функции ) или массивы ( начиная с PHP 5.1 ). Однако, если NULL используется в качестве значения параметра по умолчанию, он будет разрешен в качестве аргумента для любого последующего вызова.

Следующий отрывок из вышеизложенного:

если NULL используется в качестве значения параметра по умолчанию, он будет разрешен в качестве аргумента для любого последующего вызова.

Означает ли вышеупомянутое:

если параметры по умолчанию должны использоваться с указанием типа, в качестве значения по умолчанию может быть только NULL .

т.е. код в code1 неверен и приводит к:

Неустранимая ошибка: значение по умолчанию для параметров с подсказкой типа класса может быть только NULL

code1:

 function setName ( string $name = "happ") {
  ...
  }

Где как код в code2 правильный :

code2:

 function setName ( string $name = NULL) {
  ...
  }

Почему это ограничение назначается в php?

44
задан Prags 13 February 2018 в 16:09
поделиться