Использование тернарного оператора в эхо? - PullRequest
0 голосов
/ 14 июля 2020

Почему я могу использовать эхо вот так:

<?php echo false ? 'yes' : 'no'; ?> //no

Но не могу использовать его так

<?php echo false ?? 'yes'; ?> //nothing output

Ответы [ 2 ]

4 голосов
/ 14 июля 2020

?? Оператор в PHP - это оператор объединения с нулевым значением:

expr1 ?? expr2;

expr1 is returned when expr1 exists and is NOT null; otherwise it returns expr2.

Поскольку в этом случае expr1 имеет значение false, но установлено, это выражение возвращает логическое значение false.

Сравните:

echo false ?? 'It is FALSE'; // won't be displayed
echo null ?? 'it is NULL'; // It will work

Эхо не выводится, если передано логическое значение false.

0 голосов
/ 14 июля 2020

как уже говорилось, здесь вы используете оператор объединения null

Он проверяет, является ли false null

просто хочу добавить: обычная и сокращенная тернарная операция

echo false ? 'yes' : 'no';

совпадает с

echo false ?: 'no';

Таким образом,

echo true ?: 'no';

выведет 1, поскольку?: По существу пропускает первое выражение

(condition) ? expression1 : expression2
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...