@4sadly

Php! или === null?

Надо проверить переменную $error на наличие ошибок, что лучше:
if($error === null){}
или
if(!$error){}
?
  • Вопрос задан
  • 216 просмотров
Решения вопроса 2
Maksclub
@Maksclub Куратор тега PHP
maksfedorov.ru
if($error === null){} предпочтительный (иногда он обязательный по стандартам), тк вариант if(!$error){} — это авто-приведение к bool:

  • например 0 приведется к false, в то время как он может быть валидным интовым значением
  • пустой массив — тоже может быть валидным значением, но с !$arr он приведется к false... конечно допускать в программе одновременно и [] и null стоит как можно реже, но такое может произойти


!$any можно использовать комфортно, когда вы (и программа) уверена, что работает либо с объектом, либо с bool
Ответ написан
Комментировать
FanatPHP
@FanatPHP
Чебуратор тега РНР
если переменная была заранее объявлена, то
if(!$error){}
если не была, то
if(!empty($error)){}
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@rPman
Если есть возможность, меняйте тип возвращаемого значения, т.е. зоведите специальный класс Error и после вызова проверяйте тип результата.

Еще есть практика выноса статуса ошибок из возвращаемого значения, так как ошибки бывают разные и требуют разной ответной реакции, с помощью исключений - классов потомков Exception

В этом случае каждый вариант ошибки должен быть отловлен в своей секции catch а вызов в try (саму ошибку инициализировать с помощью throw).
Ответ написан
Ваш ответ на вопрос

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

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