Kwert-soft.ru

IT Софт для ПК
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Php if and

Урок 5. Условный оператор if, логические операции и сравнение в PHP

Условный оператор if в PHP

Главное в действие данное оператора — это условие. if в переводе с английского значит если. Условие принимается в качестве аргумента (то что в скобках). В качестве условия может выступать логическое выражение или логическая переменная. Если проще, то смысл выражения будет такой:

Надеюсь логика условной операции понятна. Теперь давайте рассмотрим пример.

Демонстрация Скачать исходники
В итоге скрипт выведет 25 больше 5. Пример довольно прост. Надеюсь всё понятно. Теперь предлагаю рассмотреть ситуацию сложнее, где нужно соблюсти несколько условий. Каждое новое условие будет содержать после основного условия if() — вспомогательное, которое записывается как else if(). В конце как обычно будет else.

Задача: В школе проводят тестирование. Скрипту нужно высчитать балл, зная условия получения каждой оценки и сам балл школьника. Давайте посмотрим как это записать, и не забудьте прочитать комментарий.

Демонстрация Скачать исходники
Наш школьник, который успевает и отдохнуть, и написать нормально тест получает оценку 4! А принцип работы надеюсь понятен.

Возможна и короткая запись работы условной операции, когда Вам нужно действие только в случае соблюдения условия.

Вполне себе милый пример короткой записи условной операции. else писать не обязательно.

Дальше встаёт другой вопрос: а есть же, наверное, какие-либо другие операторы сравнения?

Операторы сравнения в PHP

Принцип работы условной операции понятен. Но, как Вы понимаете, способов сравнить намного больше. Давайте посмотрим ниже на таблицу с операторами сравнения.

Теперь рассмотрим операторы на примерах:

Логические операторы PHP

Бывают случаи, когда нужно сравнить не одну переменную, а сразу две и более в одном условии. Для этого существуют логические операторы.

Уже обратили внимание, что для операций и и или есть дополнительные операторы? Так сделано для того, чтобы расставить приоритеты в сложных операциях сравнения. В таблице логические операторы приведены в порядке приоритета: от меньшего к большему, то есть, например, || имеет больший приоритет, чем or.

Переходим к примерам

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

К вопросу тернарного кода я предлагаю Вам вернуться позже. Вовсе не упомянуть его я не мог, так как это важная конструкция, которая существенно сокращает размер кода. Предлагаю сразу рассмотреть код.

Суть кода: (условие) ? значение a если true : значение a если false

Таким образом, мы сокращаем запись оператора if. Однако, данная операция действительна только с присваиванием значений переменной. Теперь давайте рассмотрим готовый пример.

Прочитайте комментарии к коду и всё должно быть понятно.

Использование AND / OR в if else заявление PHP

Как вы используете «AND / OR» в инструкции if else else? Будет ли это:

  • Многие программисты предпочитают && и || вместо and и / or , но они работают одинаково (безопасно для приоритета).
  • $status = ‘clear’ должен быть $status == ‘clear’ . = is присваивание, == это сравнение.

Немного поздно, но не важно …
вопрос: «Как вы используете …?» короткий ответ: вы делаете это правильно

Другой вопрос: «Когда вы его используете?»
Я использую && вместо AND и || вместо OR .

в этом случае результат «ЛОЖЬ», потому что B не 1, теперь что, если

Это вернет «TRUE», даже если B все еще не является значением, которое мы запрашиваем, есть еще один способ вернуть TRUE без использования OR / || и это будет XOR

в этом случае нам нужна только одна из наших переменных, но НЕ ОБА, если оба из них TRUE, результат будет FALSE.

Читать еще:  Womenbox net translate php

Надеюсь, это поможет…

У вас есть 2 вопроса.

используйте == для сравнения. Вы использовали = который предназначен для назначения.

используйте && для «и» и || для «или». and or будут работать, но они нетрадиционные.

В ответах здесь есть некоторые шуточные и вводящие в заблуждение комментарии, даже частично некорректная информация. Я хотел бы попытаться улучшить их:

Во-первых , как указывали некоторые, у вас есть ошибка в коде, относящаяся к вопросу:

должен быть (обратите внимание на == вместо = в первой части):

которая в этом случае функционально эквивалентна

Во-вторых , заметим, что эти операторы ( and or && || ) являются операторами короткого замыкания. Это означает, что если ответ можно определить с уверенностью из первого выражения, второй никогда не будет оценен. Опять же это не имеет значения для вашей отлаженной строки выше, но это чрезвычайно важно, когда вы комбинируете эти операторы с заданиями, потому что

В-третьих , реальная разница между and or и && || является их приоритетом для операторов . В частности, важно, чтобы && || имеют более высокий приоритет, чем операторы присваивания ( = += -= *= **= /= .= %= &= |= ^= >= ), хотя and or имеют меньшую точность, чем операторы присваивания. Таким образом, в заявлении, которое сочетает использование присваивания и логической оценки, важно, какой из них вы выберете.

Модифицированные примеры из страницы PHP на логических операциях :

будет оценивать значение true и присваивать это значение $e , потому что || имеет более высокий приоритет оператора, чем = , и поэтому он, по существу, оценивает следующее:

присваивает false значение $e (а затем выполняет операцию or операцию и оценивает значение true ), поскольку = имеет более высокий приоритет оператора, чем or , по существу, оценивая следующим образом:

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

Некоторые языки, такие как Perl, используют такую ​​конструкцию часто в формате, подобном этому:

Это теоретически назначало бы подключение к базе данных к $connection , или если это не сработало (и мы предполагаем, что здесь функция вернет то, что в этом случае вернется к false ), это приведет к завершению скрипта сообщением об ошибке. Из-за короткого замыкания, если соединение с базой данных завершается успешно, die() никогда не оценивается.

Некоторые языки, которые допускают эту конструкцию прямо запрещают присвоения в условных / логических операциях (например, Python), чтобы устранить неоднозначность в обратном порядке.

PHP пошел, разрешив оба, так что вам просто нужно узнать о своих двух вариантах один раз, а затем код, как вы хотите, но, надеюсь, вы будете так или иначе последовательны.

Всякий раз, когда вы сомневаетесь, просто добавьте лишний набор круглых скобок, который устраняет всю двусмысленность. Они всегда будут одинаковыми:

Вооружившись всеми этими знаниями, я предпочитаю использовать and or потому, что чувствую, что он делает код более удобочитаемым. У меня просто есть правило не комбинировать назначения с логическими оценками. Но в этот момент это просто предпочтение, и последовательность важна здесь намного больше, чем какая-то сторона, которую вы выберете.

Читать еще:  Php дескриптор файла

AND is && и OR is || как в C.

AND и OR являются просто синтаксическим сахаром для && и || , как в JavaScript, или в других языках синтаксиса языка C.

Он появляется AND и OR имеют более низкий приоритет, чем их эквиваленты стиля С.

для И вы используете

для ИЛИ вы используете

Я думаю, что у меня немного путаницы здесь. Но, похоже, никто другой не имеет ..

Вы спрашиваете, какой из них следует использовать в этом сценарии? Если да, то И это правильный ответ .

Если вы спрашиваете о том, как работают операторы,

В php и AND, && и OR, || будет работать одинаково. Если вы новичок в программировании, а php – один из ваших первых языков, я предлагаю использовать AND и OR, потому что он повышает читаемость и уменьшает путаницу при проверке. Но если вы уже знакомы с любыми другими языками, то вы, возможно, уже знакомы с && и || операторы.

ive заменил «else» на «&&», поэтому оба они размещены … argh

Php if and

Условные операторы являются, пожалуй, наиболее распространенными конструкциями во всех алгоритмических языках программирования. Рассмотрим основные условные операторы языка PHP.

Конструкция if

Синтаксис конструкции if аналогичен конструкции if в языке Си:

Согласно выражениям PHP, конструкция if содержит логическое выражение. Если логическое выражение истинно (true), то оператор, следующий за конструкцией if будет исполнен, а если логическое выражение ложно (false), то следующий за if оператор исполнен не будет. Приведем примеры:

if ( $a > $b ) echo «значение a больше, чем b» ;
?>

В следующем примере если переменная $a не равна нулю, будет выведена строка «значение a истинно (true)»:

if ( $a ) echo «значение a истинно (true) » ;
?>

В следующем примере если переменная $a равна нулю, будет выведена строка «значение a ложно (false)»:

if ( !$a ) echo «значение a ложно (false) » ;
?>

Часто вам будет необходим блок операторов, который будет выполняться при определенном условном критерии, тогда эти операторы необходимо поместить в фигурные скобки Пример:

if ( $a > $b ) <
echo «a больше b» ;
$b = $a ;
>
?>

Приведенный пример выведет сообщение, «a больше b», если $a > $b, а затем переменная $a будет приравнена к переменной $b. Заметим, что данные операторы выполняются в if.

Конструкция else

Часто возникает потребность исполнения операторов не только в теле конструкции if, если выполнено какое-либо условие конструкции if, но и в случае, если условие конструкции if не выполнено. В данной ситуации нельзя обойтись без конструкции else. В целом, такая конструкция будет называться конструкцией if-else.

Синтаксис конструкции if-else такой:

if (логическое_выражение)
инструкция_1;
else
инструкция_2;

Действие конструкции if-else следующее: если истинно, то выполняется
, а иначе — . Как и в любом другом языке, конструкция else может опускаться, в этом случае при получении должного значения просто ничего не делается.

Если или должны состоять из нескольких команд, то
они, как всегда, заключаются в фигурные скобки. Например:

if ( $a > $b ) <
echo «a больше, чем b» ;
> else <
echo «a НЕ больше, чем b» ;
>
?>

Конструкция if-else имеет еще один альтернативный синтаксис:

if (логическое_выражение):
команды;
elseif(другое_логическое_выражение):
другие_команды;
else:
иначе_команды;
endif

Обратите внимание на расположение двоеточия (:)! Если его пропустить, будет сгенерировано сообщение об ошибке. И еще: как обычно, блоки elseif и else можно опускать.

Читать еще:  Справочник по php

Конструкция elseif

elseif — это комбинация конструкций if и else. Эта конструкция расширяет условную конструкцию if-else.

Приведем синтаксис конструкции elseif:

if (логическое_выражение_1)
оператор_1;
elseif (логическое_выражение_2)
оператор_2;
else
оператор_3;

Практический пример использования конструкции elseif:

if ( $a > $b ) <
echo «a больше, чем b» ;
> elseif ( $a == $b ) <
echo «a равен b» ;
> else <
echo «a меньше, чем b» ;
>
?>

Вообще, конструкция elseif не очень удобна, поэтому применяется не так часто.

Операторы PHP if . else

В этой статье мы расскажем, как использовать операторы if … else … и elseif PHP .

Условные операторы PHP

В PHP есть несколько операторов, которые можно использовать для принятия решений:

  • Оператор if ;
  • Оператор if … else ;
  • Оператор if … elseif …. else ;
  • Оператор switch … case .

Ниже мы рассмотрим каждый из этих операторов.

Оператор if

Оператор if ( как и PHP elseif ) используется для выполнения блока кода только в том случае, если указанное условие имеет значение true . Это простейший условный оператор PHP , его можно записать следующим образом:

Приведенный ниже код выводит « Хорошего уик-энда! », если сегодня пятница:

Оператор if … else

Можно усложнить процесс принятия решений, предоставив альтернативный вариант. Для этого к if нужно добавить оператор else . Оператор if … else позволяет выполнить один блок кода, если указанное условие оценивается как true , а другой блок кода, если false .

Его можно записать следующим образом:

Приведенный ниже код выводит « Хорошего уик-энда! », если сегодня пятница. Иначе выводиться « Хорошего дня! ».

Оператор if … elseif … else

if…elseif…else оператор ( не путать с PHP elseif else ) используется для объединения нескольких операторов if … else .

Приведенный ниже код выводит « Хорошего уик-энда! », если сегодня пятница или «Хорошего воскресенья!» если сегодня воскресенье. В противном случае будет выводиться « Хорошего дня! ».

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

Тернарный оператор предоставляет сокращенный способ написания операторов if … else и elseif PHP . Тернарный оператор обозначается символом вопросительного знака ( ? ). Он принимает три операнда: условие для проверки, результат для true и результат для false .

Чтобы понять, как работает этот оператор, рассмотрим следующие примеры:

Используя тернарный оператор, тот же код можно записать более компактно:

Тернарный оператор в приведенном выше примере выбирает значение слева от двоеточия ( т. е. «Ребенок» ), если условие оценивается как true ( т. е. если $age меньше 18 ) и значение справа от двоеточия ( т.е. «Взрослый» ), если условие оценивается как false .

Примечание . Код, написанный с использованием тернарного оператора, может быть трудно читаемым. Тем не менее, он предоставляет способ компактной записи операторов if-else и PHP elseif .

Оператор нулевого коалесцирования в PHP7

В PHP 7 был введен новый оператор нулевого коалесцирования ( ?? ), который можно использовать в качестве сокращенного обозначения тройного оператора в сочетании с функцией isset() .

Чтобы лучше понять, как это работает, рассмотрим приведенный ниже код. Он извлекает значение $_GET[‘имя’] . Если оно не существует или равно NULL , возвращается ‘ anonymous ‘.

Используя оператор нулевого коалесцирования вместо PHP elseif примера, этот же код можно записать в следующем виде:

Второй вариант синтаксиса является более компактным и простым в написании.

Данная публикация представляет собой перевод статьи « PHP If…Else Statements » , подготовленной дружной командой проекта Интернет-технологии.ру

Ссылка на основную публикацию
Adblock
detector