Рейтинг@Mail.ru
 

Тернарный оператор

Любопытное дело с этим тернарным оператором. Вообще он придуман для того, что бы упростить жизнь разработчика. И так оно и есть. Но почему то начинающие программисты никак не могут его усвоить. Хотя казалось бы - чего проще:
Тернарный оператор в зависимости от результата  выполнения выражения в аргументе 
возвращает значение, находящееся слева или справа от двоеточия.


А вот никак не доходит с первого тычка. Хотя если опустить термины и попытаться объяснить своими словами, все гораздо проще.

Представьте ситуацию, когда муж пришел домой под градусом. Жена сразу же с порога задаст вопрос:
1
2
3
4
5

    $жена 
= (Зарплату пропил) ?

И в зависимости от того, что ответит муж, предпримет действия:
1
2
3
4
5

    $жена 
= (Зарплату пропил) ? ' Скалкой по башке' : 'Поцелует в щечку';


То есть если ответ утвердительный, факт - целовать не станет.
Так же и с переменными. Выбираем переменную, в которую хотим записать одно из возможных значений:
1
2
3
4
5

    $variable 



А потом ставим условие, как бы спрашивая (там даже знак вопроса специально) - правда или нет.
1
2
3
4
5

    $variable 
= empty($var) ? 'Переменная $var пустая' 'Переменная $var полная';


И в зависимости от состояния переменной $var запишет правое или левое от двоеточия значение. Причем порядок такой, как мы обычно и спрашиваем в жизни - ДА или НЕТ? Попробуйте спросить наоборот - НЕТ или ДА? Не звучит.

Так что все на самом деле гораздо проще чем кажется. Впрочем это касается не только тернарных операторов, если развеять дымовую завесу спецтерминов и профессионального жаргона.