@haramba
Почему вопросы о про битрикс такие тупые?

Знак вопроса перед параметром метода это ошибка в PHP?

Встретил в чужом коде такую вещь.
Функционал работает нормально, а IDE подсвечивает ошибкой.
Ошибка ли это ? что может означать?
5ae6d093d95e1581548878.png
  • Вопрос задан
  • 1750 просмотров
Решения вопроса 1
@vaajnur
веб-программист
Типы для параметров и возвращаемых значений могут быть помечены как обнуляемые путем добавления префикса в виде знака вопроса. Это означает, что указанные параметры и возвращаемые значения, могут быть как указанного типа, так и NULL.

php.net/manual/ru/migration71.new-features.php
Ответ написан
Пригласить эксперта
Ответы на вопрос 3
KorniloFF
@KorniloFF
Ищу работу по font-end / JS
Нет, это означает то же самое, что ($par=null)
Другими словами - необязательный параметр.
Ответ написан
By_Engine
@By_Engine
Знак вопроса означает что параметр может принимать указанный тип или null
Ответ написан
@oxidmod
Другими словами - необязательный параметр.

На самом деле - нет.
Сам знак вопроса обозначает что параметр должен быть либо нулл, либо указанного типа. Но пропустить его нельзя
function test (?stdClass $obj) {
    // some code
}

test(new stdClass); // ok
test(null); //ok
test(); // error


В примере в вопросе параметр действительно необязателен, так как указано значение по умолчанию.
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы