SashokSmir
@SashokSmir
Инженер

Почему нельзя задать массив значением по умолчанию для параметра типа iterable?

В документации PHP сказано:

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

и есть пример:

function foo(iterable $iterable = []) {
    // ...
}

На деле у меня на сервере с PHP 7.0 это вызывает ошибку:

Fatal error: Default value for parameters with a class type can only be NULL in

Подскажите, пожалуйста, почему не получается пример из официальной документации?
  • Вопрос задан
  • 123 просмотра
Решения вопроса 1
SashokSmir
@SashokSmir Автор вопроса
Инженер
Нашел ответ:

Iterable является псевдо-типом введенным в PHP 7.1


Поэтому до 7.1 с ним так не пройдет.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
evgeniy2194
@evgeniy2194
PHP, js developer
потому что вы указали тип как iterable а значение пытаетесь присвоить как array
array !== iterable //true
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы