Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.89/9: Рейтинг темы: голосов - 9, средняя оценка - 4.89
0 / 0 / 0
Регистрация: 11.10.2018
Сообщений: 1

Почему так работает тернарный оператор?

11.10.2018, 10:28. Показов 1882. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем ку!

PHP
1
2
3
$result = true ? 0 : false ? 100 : 200;
 
var_dump($result);
Почему выводит 200, а не 0?

PHP
1
$result = true ? 1 : false ? 100 : 200;
А так вообще 100...
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
11.10.2018, 10:28
Ответы с готовыми решениями:

тернарный оператор
Можно ли как-то лучше сделать этот пример: $i = 0; while($i++<101){echo ( $i%3 == 0 )?$i."<br/>":FALSE; } Что можно придумать вместо...

Тернарный оператор
Изучая php наткнулся на такую вещь, как тернарный оператор. Увидел, что его запись намного проще обычной конструкции if-else. Но вопрос...

тернарный оператор
понимаю, что вопрос совсем детский, но все таки не могу понять в чем проблема... пример: $a=1; echo...

3
 Аватар для Строитель
1084 / 746 / 364
Регистрация: 09.07.2018
Сообщений: 1,760
11.10.2018, 10:42
Лучший ответ Сообщение было отмечено stupid_noob как решение

Решение

Цитата Сообщение от stupid_noob Посмотреть сообщение
Почему выводит 200, а не 0?
Потому что приоритет нужно указать
PHP
1
2
3
$result = true ? 0 : (false ? 100 : 200);
 
var_dump($result); // int(0)
А вообще, избегайте использования вложенных тернарных операторов. Если ваше условие требует вложенности, используйте оператор if () {}.
1
 Аватар для CoderHuligan
1743 / 1008 / 257
Регистрация: 30.06.2015
Сообщений: 5,107
Записей в блоге: 56
11.10.2018, 10:53
Цитата Сообщение от VNIIAEN Посмотреть сообщение
Если ваше условие требует вложенности, используйте оператор if () {}
Но if нельзя использовать в выражениях напрямую.
0
 Аватар для Строитель
1084 / 746 / 364
Регистрация: 09.07.2018
Сообщений: 1,760
11.10.2018, 10:58
Лучший ответ Сообщение было отмечено stupid_noob как решение

Решение

Цитата Сообщение от CoderHuligan Посмотреть сообщение
Но if нельзя использовать в выражениях напрямую.
Это понятно. В крайнем случае применяйте визуальное форматирование для вложенных тернарных операторов, что бы код можно было прочитать
PHP
1
2
3
4
5
$result = false 
    ? (false ? 100 : 200) 
    : (true ? 300 : 400);
 
var_dump($result);
Но лучше переписать код без использования вложенных тернарников.
2
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
11.10.2018, 10:58
Помогаю со студенческими работами здесь

Тернарный оператор PHP
И снова всем привет, добрые люди. Продолжаю разбираться с php и возникла следующая задача: Есть код, ниже приведен его кусочек. ...

Тернарный оператор и обработка строк
Всем добра! true ? "$a!" : "$a?"; Подскажите, как поступит интерпретатор с переменными в строках: а) обработает обе строки и вернет...

Почему в функции не работает оператор присваивания
Приходится выходить из ситуации таким образом if($acrossCountry<0) { $a = $acrossCountry * (-1); ...

Тернарный оператор: Почему выводит ошибку lvalue required?
Данный код не компилируется в c99 : /* -------------------------------------------------------------------------- */ #include...

Как работает тернарный оператор
Здравствуйте. Объясните, пожалуйста, что значит эта строка color = (color == 'W') ? 'B' : 'W';


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru