тернарный условный оператор php
PHP занятие 3. Условные операторы
Условные операторы php
Условные операторы php представлены тремя основными конструкциями:
Рассмотрим подробнее каждый из них.
PHP оператор if
Рис 3.1. Условный оператор IF, укороченный вариант
Рис. 3.2. Синтаксис условного оператора IF ELSE
Рис. 3.3. Полный синтаксис условного оператора IF elseif
В условном операторе может использоваться двоеточие : вместо фигурных скобок. В таком случае заканчивается оператор служебным словом endif
Рис. 3.4. Условный оператор If и Endif в php
Пример:
Логические операции в условии
В условии if в скобках могут присутствовать следующие операции:
== | равенство |
!= | неравенство |
> | больше |
меньше | |
>= | больше или равно |
меньше или равно |
Решение:
1 Решение:
2 Решение:
Операции сравнения и правило лжи
В конструкции if в скобках должно находиться логическое выражение или переменная, которые рассматриваются с точки зрения алгебры логики, возвращающая значения либо true либо false
Т.е. в качестве условия может выступать единственная переменная. Рассмотрим пример:
В примере транслятор языка php будет рассматривать переменную в скобках на правило лжи:
Правило ЛЖИ или что считается ложным:
Логические конструкции И ИЛИ и НЕ в условном операторе
$a=1; if (!($a Оператор Switch PHP
Рис. 3.5. Условный оператор Switch
Решение:
Дополните код:
Тернарный оператор PHP
Условия в PHP
Всем привет! Вот и очередной урок по PHP подоспел. Сегодняшняя тема – одна из самых любимых у тех, кто начинает программировать. Ещё бы, ведь условия в PHP – это то, что позволяет нам составлять различные алгоритмы. Именно в зависимости от условий программа будет вести себя так или иначе. И именно благодаря им мы можем получать разный результат при разных входных данных. В PHP имеются несколько конструкций, с помощью которых можно реализовать условия. Все они используются, и имеют свои преимущества в разных ситуациях, или, если хотите – условиях. Кругом одни условия, не так ли? Так. Никто ведь не будет спорить, что в реальной жизни в зависимости от обстоятельств мы поступаем по-разному. В программировании это не менее важно и сейчас мы этому научимся.
Как вы должны помнить из прошлого урока, в PHP, в зависимости от оператора, операнды приводятся к определённому типу. Для операторов условий в PHP действуют те же правила, и здесь операнд всегда приводится к булевому значению. В случае, если это значение true, то считаем, что условие выполнено, а в случае, если false – то условие не выполнено. В зависимости от того, выполнено ли условие, мы можем делать или не делать какие-либо действия. И тут я предлагаю рассмотреть первый условный оператор – if.
Условный оператор if
Это самый простой, и самый часто используемый оператор. В общем случае конструкция выглядит следующим образом:
А в реальной жизни использование оператора if выглядит следующим образом:
Здесь мы явно передали оператору значение true. Разумеется, это абсолютно бессмысленно. Давайте с помощью условия будем определять числа больше 10. Это довольно просто:
И после запуска мы увидим результат:
Конструкция if-else
Здесь опять же на экран будет выведено сообщение:
Однако если мы изменим входные данные, и переменной $x в самом начале присвоим значение 8, то выведется сообщение:
Попробуйте сделать это прямо сейчас.
Конструкция if-elseif-else: несколько условий
В случае, если вам нужно проверить несколько условий, после оператора if добавляется ещё и оператор elseif. Он проверит условие, только если не выполнится первое условие. Например:
В данном случае, на экран будет выведено:
И да, после этого оператора можно добавить else. Код внутри него будет выполнен, если не выполнилось ни одно из условий:
Результат этого кода, я полагаю, объяснять не нужно. Да, кстати, возможен целый список из elseif-ов. Например, такой:
Приведение к boolean
Помните, в уроке про типы данных в PHP мы с вами научились явно приводить значения к какому-либо типу. Например:
Результатом будет true.
Работающее так же, только неявное преобразование, всегда происходит в условии. Например, следующее условие:
Выполнится успешно, так как число 3 будет преобразовано к true. К false будут приводиться следующие значения:
Таким образом, любое ненулевое число и ненулевая строка будут преобразованы в true и условие выполнится. Исключение – строка, состоящая из одного нуля:
Она также будет преобразована к false.
Я затронул эту тему с приведением к boolean в домашнем задании к этому уроку. Обязательно его выполните. А сейчас давайте перейдём к следующему условному оператору.
Оператор switch
Помимо конструкции if-else есть ещё один оператор условия. Это – switch. Это очень интересный оператор, требующий запоминания нескольких правил. Давайте для начала посмотрим, как он выглядит на следующем примере:
В фигурных скобках мы перечисляем операторы case, после которых указываем значение, с которым сравнивается значение операнда switch. Сравнение происходит нестрогое, то есть как будто используем оператор ==. И если условие выполнилось, то выполняется код, указанный после двоеточия. Если же ни одно из условий не выполнилось, то выполняется код из секции default, которой в общем-то может и не быть, и тогда ничего выполняться не будет. Обратите внимание, внутри каждой секции case, в конце мы прописали оператор break. Это делается для того, чтобы после выполнения кода в случае выполнения условия не продолжилась проверка условий. То есть, если бы не было break в конце секции case 1, то после того, как вывелся бы текст
продолжило бы выполняться условие сравнения с 2, а затем бы выполнился и код в секции default. Не забывайте писать break!
Сравнение switch с if
Вообще, этот код можно было бы записать и с помощью конструкции if-elseif-else:
Но в виде конструкции switch-case код в конкретно этом случае выглядит проще. И вот почему:
И снова про switch
Согласитесь, это может быть удобно.
Хорошо, давайте пройдёмся по особенностям оператора switch, о которых нужно помнить всегда.
Немного практики
Ну что, запомнили операторы условий? Давайте закрепим на практике более реальными примерами.
Чётное или нечётное
Вот один из примеров – нужно определить, чётное ли число или нет. Для этого нам нужно проверить, что остаток от деления на 2 будет равен 0. Подробнее об операторах читайте тут. Давайте сделаем это:
Попробуйте самостоятельно изменить значение переменной $x. Круто, да? Оно работает!
Модуль
Давайте теперь научимся вычислять модуль числа. Если число больше или равно нулю, то нужно вывести само это число, если меньше – заменить знак с минуса на плюс.
Как мы видим, всё успешно отработало.
Тернарный оператор
Помимо этого, в PHP есть ещё один оператор, который представляет собой сокращённую форму конструкции if-else. Это тернарный оператор. При этом он возвращает разные результаты, в зависимости от того, выполнено ли условие или нет. В общем виде его использование выглядит следующим образом:
Или на примере того же нахождения модуля:
Круто, да? Тернарный оператор – очень элегантно вписывается при решении таких вот простеньких задачек.
И ещё немного практики
Условия можно помещать внутрь друг друга и вообще, чего с ними только можно не делать. Например:
Друзья, надеюсь вам понравился урок. Если это так – буду рад, если вы поделитесь им в социальных сетях или расскажете друзьям. Это лучшая поддержка проекта. Спасибо тем, кто это делает. Если у вас возникли какие-то вопросы или замечания – напишите об этом в комментариях. А сейчас – все быстренько делаем домашнее задание, там ещё больше интересных примеров с условиями. Всем пока!
Урок 5. Условный оператор if, логические операции и сравнение в PHP
Условный оператор if в PHP
Надеюсь логика условной операции понятна. Теперь давайте рассмотрим пример.
Задача: В школе проводят тестирование. Скрипту нужно высчитать балл, зная условия получения каждой оценки и сам балл школьника. Давайте посмотрим как это записать, и не забудьте прочитать комментарий.
Демонстрация Скачать исходники
Наш школьник, который успевает и отдохнуть, и написать нормально тест получает оценку 4! А принцип работы надеюсь понятен.
Возможна и короткая запись работы условной операции, когда Вам нужно действие только в случае соблюдения условия.
Вполне себе милый пример короткой записи условной операции. else писать не обязательно.
Дальше встаёт другой вопрос: а есть же, наверное, какие-либо другие операторы сравнения?
Операторы сравнения в PHP
Принцип работы условной операции понятен. Но, как Вы понимаете, способов сравнить намного больше. Давайте посмотрим ниже на таблицу с операторами сравнения.
Теперь рассмотрим операторы на примерах:
Логические операторы PHP
Бывают случаи, когда нужно сравнить не одну переменную, а сразу две и более в одном условии. Для этого существуют логические операторы.
Уже обратили внимание, что для операций и и или есть дополнительные операторы? Так сделано для того, чтобы расставить приоритеты в сложных операциях сравнения. В таблице логические операторы приведены в порядке приоритета: от меньшего к большему, то есть, например, || имеет больший приоритет, чем or.
Переходим к примерам
Тернарный оператор
К вопросу тернарного кода я предлагаю Вам вернуться позже. Вовсе не упомянуть его я не мог, так как это важная конструкция, которая существенно сокращает размер кода. Предлагаю сразу рассмотреть код.
Таким образом, мы сокращаем запись оператора if. Однако, данная операция действительна только с присваиванием значений переменной. Теперь давайте рассмотрим готовый пример.
Прочитайте комментарии к коду и всё должно быть понятно.
Условные операторы в PHP
Добрались до логики выполнения программы. И так условные операторы (по другому операторы ветвления) позволяют нам организовать определённое поведение программы в зависимости от входных параметров (данных вводимых пользователем, результатом работы вспомогательных функций). Вся логика в языках программирования основана на Алгебре Буля. Согласно определению Алгебра Буля (или алгебра логики) — это раздел математики, изучающий высказывания (или выражения в случае программирования), рассматриваемые со стороны их логических значений (истинности или ложности) и логических операций над ними.
Вот такое сравнение, может служить простым примером алгебры логики.
Один больше двух? Нет. Т.е. утверждение что «Один больше двух» является ложным. Ещё немного «псевдокода».
Результат сравнения двух переменных (a и b) в данном примере будет истинным или ложным, в зависимости от этого программа выполнит первое или второе действие. Например.
В этом примере мы проверяем не превышает ли количество дней в году число 365 и сообщаем что год високосный если условие истинно иначе говорим, что год обычный. По сути подобным образом операторы сравнения работаю в программировании. К слову в языках программирования есть специальный тип данных bool т.е. логический. Переменные этого типа могут иметь одно из двух значений true — истина и false — ложь. Давайте теперь разберём как работают условные операторы в языке php.
Оператор if/else и elseif
Наиболее часто в коде вы будете сталкиваться именно с этим оператором. В общем виде он записывается вот так:
Есть дополнительный оператор elseif() который позволяет проверить ещё одно или несколько условий прямо в этом ветвлении.
Оператор switch/case
Как я у же говорил выше, для таких множественных ветвлений используется конструкция switch (проверяемое значение) < case значение: действие brack; >.
Условие так же довольно громоздко, но воспринимается в коде проще.
Тернарный оператор сравнения
Иногда вам необходимо встроить небольшую проверку значения например в цикл формирования массива php. Вставлять туда полноценный if() <…>else <…>неудобно, т.к. код получится слишком громоздким. Для решения этой проблемы в php предусмотрен тернарный оператор сравнения. Его синтаксис можно описать следующим образом:
Под действием в данном случае подразумевается возврат или вывод какого-то значения. Например, формируем некоторый массив и округляем значение если оно является числом:
‘;
Вложенные условия
Для этой задачи отлично подойдут вложенные условия. Давайте смотреть код:
Вложенная проверка часто экономит нам ресурсы сразу отсекая множество не верных вариантов решения. Их так же можно многократно вкладывать друг в друга или использовать вперемешку со switch(), но не увлекайтесь, вам следует выдерживать баланс между читабельностью кода и вложенностью условных операторов. Стремитесь к простоте как в python.
Ещё совет. Сложные проверки лучше выносить в отдельные функции, как бы скрывая логику «под капотом», такая функция может возвращать булевское значения, и вместо сложной длинной проверки в основном коде, вам достаточно будет вызвать одну функцию и передать ей проверяемые значения, а дальше использовать результат работы функции (true/false) для дальнейшего ветвления в программе.
Надеюсь материал был вам полезен. Желаю удачи!
Тернарный оператор в JavaScript
Тернарный (или условный) оператор существует во многих языках программирования — например, в C++, Java, Python, PHP и других. Разберёмся, как он работает в JavaScript.
Все операторы различаются по количеству аргументов, к которым они применяются. Например, существует оператор «-», который меняет знак числа на противоположный. Если такой оператор применяется к одному числу, то есть у него один аргумент — он называется унарным.
Кроме унарных операторов, существуют операторы с двумя аргументами — бинарные. Например, бинарный «+» складывает два аргумента:
И, наконец, тернарный оператор:
Это единственный оператор с тремя аргументами, что отражено в названии. Первый аргумент — это условие. Если оно истинно (равно true ), оператор вернёт второй аргумент — выражение1. В ином случае он вернёт третий аргумент — выражение2.
По сути оба фрагмента кода выполняют одно и то же действие — проверяют условие, а затем присваивают переменной первое или второе выражение в зависимости от истинности этого условия. Разница лишь в форме записи.
Варианты использования
Значение, возвращаемое тернарным оператором, можно записать в переменную — этот вариант мы уже рассмотрели в примере выше. Кроме этого, его можно использовать в функциях при возвращении значения с помощью return :
Также возможно использование множественных тернарных операций. В этом случае несколько операторов «?» будут идти подряд:
Что выбрать: тернарный оператор или if
При выборе за основной показатель нужно взять читабельность кода. Чем код понятнее, нагляднее, тем удобнее его рефакторить и поддерживать. Тернарный оператор может как сделать код проще, так и необоснованно его усложнить. Это зависит от ситуации.
Посмотрим ещё раз на самый первый вариант, уже разобранный выше. Здесь переменной присваивается значение в зависимости от условия, и это пример грамотного использования тернарного оператора. В таком случае он позволяет избавиться от громоздкой условной конструкции и сделать код проще и короче.
Но есть варианты, когда использование оператора усложняет код. В большинстве случаев это относится к множественным тернарным операциям, о которых речь шла выше. Ещё к таким вариантам стоит отнести использование тернарного оператора для выполнения целых фрагментов кода в зависимости от условия, а не простого присвоения значения переменной. Рассмотрим пример:
Тем не менее не стоит отказываться от тернарного оператора. Он может помочь сделать код понятным и лаконичным. Главное — знать, в каких конкретно ситуациях его полезно использовать, и не злоупотреблять.