Есть ли способ объединить тернарный оператор с объединением нуля?

Я хотел бы сначала проверить, является ли переменная нулевой или нет, если она равна нулю, верните «Null». В противном случае проверьте, равна ли переменная === 1, если это так, верните «Да, иначе, верните« Нет ».

Прямо сейчас у меня есть это:

($is_realtor ? 'Yes' : 'No') ?? 'Null'

Но похоже, что он никогда не достигнет нулевого оператора объединения. Он вернет «Нет», даже если $is_realtor - это null.

Есть ли лаконичный и элегантный способ их сочетать?

Результатом этой тернарной операции всегда будет только «Да» или «Нет», потому что, если $is_realtor равен нулю, он будет оценен как ложный, и будет применено «Нет». Если вы хотите 3 возможных результата, вам понадобится оператор if, состоящий из 3 частей. Ради будущих разработчиков не пытайтесь быть максимально умными.

castis 01.05.2018 20:25

Действительно, значение NULL в тернарном операторе будет считаться ложным. Таким образом, вам не нужно комбинировать эти операторы. Затем есть этот «другой случай», неопределенная переменная. Даже если это не совсем то, о чем спрашивали, я чувствую себя обязанным указать, что нужно будет использовать старый добрый isset. Неопределенные переменные не будут считаться ложными. Если есть способ объединить эти два оператора, я его еще не нашел.

Bevelopper 09.10.2020 10:57
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
2
2
325
1

Ответы 1

Вы можете составить столько условий, сколько захотите. Но чем больше вы гнездитесь, тем труднее будет читать.

$value = ($is_realtor === null ? null : ($is_realtor == 1 ? 'yes':'no') ); 

Другие вопросы по теме