<MyRusakov.ru />

Профессия Web-разработчик

Профессия Web-разработчик

Этот комплект за 8 месяцев превратит Вас в Web-разработчика с нуля. Учиться достаточно 1 час в день.

Начнёте Вы с HTML, CSS и вёрстки сайтов. Потом перейдёте к программированию и JavaScript. Затем изучите PHP, MySQL, SQL, Python. Изучите Web-фреймворки Laravel и Django. Создадите 5 своих сайтов для портфолио.

Комплект содержит:

- 540 видеоуроков

- 110 часов видео

- 1205 заданий для закрепления материала из уроков

- 5 финальных тестов

- 7 сертификатов

- 12 Бонусных курсов

Подробнее
Подписка

Подпишитесь на мой канал на YouTube, где я регулярно публикую новые видео.

YouTube Подписаться

Подписавшись по E-mail, Вы будете получать уведомления о новых статьях.

Подписка Подписаться

Добавляйтесь ко мне в друзья ВКонтакте! Отзывы о сайте и обо мне оставляйте в моей группе.

Мой аккаунт Мой аккаунт Моя группа
Опрос

Какая тема Вас интересует больше?

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

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

Об условном операторе я уже писал, когда говорил о JavaScript. Разумеется, в PHP также этот оператор существует, и, разумеется, он является наиважнейшим оператором как и, пожалуй, в большинстве языков программирования. И об условном операторе в PHP я и поведаю в этой статье.

Синтаксис условного оператора в PHP такой:

if (условие) {
//Блок операторов
}
else {
//Блок операторов
}

Как видите, синтаксис точно такой же, как и в JavaScript. И вообще этот синтаксис переходит от языка к языку, и он очень удобен, прост и понятен. Однако, если PHP - это Ваш первый язык, то поясняю. Вначале идёт ключевое слово "if", дальше в круглых скобках задаётся условие (результат которого, разумеется, либо true - истина, либо false - ложь). После условия идут фигурные скобки, в которых идёт блок операторов. И, наконец, необязательный блок else, который будет выполнен, если условие будет ложным (то есть вернёт false). Давайте разберём простейший пример на условный оператор:

<?php
  $x = 4;
  if ($x > 0)
    echo "Число X положительное";
  else
    if ($x == 0)
      echo "Число X равно нулю";
    else
      echo "Число X отрицательное";
?>

Давайте разберём эту простую задачу. Вначале скрипта объявляется переменная x и присваивается значение "4". Затем идёт условие, где мы "если переменная x больше нуля" выводим сообщение, иначе (то есть если переменная x НЕ больше нуля) если переменная x равно 0, то выводим сообщение, что "Число X равно нулю", иначе выводим, что число отрицательное. В общем, я постарался максимально подробно изложить алгоритм этой задачи. Надеюсь, Вы поняли принцип. Возможно, что некоторые из Вас спросят: "А куда делись фигурные скобки?" В данном случае они необязательны, потому что мы используем в каждом блоке всего один оператор (либо один оператор echo, либо один оператор IF). А вот если бы мы использовали два и более оператора, то нам пришлось бы уже ставить фигурные скобки.

И давайте ещё один пример рассмотрим, а, заодно, я познакомлю Вас с очень важной функцией в PHP - isset(), которая проверяет существование переменной и возвращает true, если переменная существует, либо false, если переменная не существует.

<?php
  $v = "some";
  if (isset($v))
    echo "Переменная v существует и её значение - $v";
  else
    echo "Переменной v не существует.";
  if (isset($abcdef)) {
    echo "Такая переменная существует!";
    echo "Странно... Ведь мы её не объявляли";
  }
  else
    echo "Данной переменной не существует...";
?>

В этом примере мы вновь объявили переменную со строковым значением "some". Дальше мы проверяем, если такая переменная существует (функция isset()), то сообщаем об этом, а если не существует (то есть функция isset() вернула false), то выводим другое сообщение. Дальше мы пишем ещё один условный оператор, в котором проверяем существование переменной abcdef. Также обратите внимание, что я поставил фигурные скобки, так как в блоке уже два оператора (два echo). Также обратите внимание, что если Вы используете двойные кавычки ("), то такие строки "значение - $v" превращаются в "значение - some", то есть подставляется значение переменной. А если Вы используете одинарные кавычки ('), то значение переменной не подставляется.

Также бывают сложные условия: с логическим И (&&) и/или логическим ИЛИ (||):

<?php
  $ab = 17;
  $cd = 19;
  $bool = true;
  if (($ab - $cd < 0) && ($bool))
    echo "Разница переменных меньше нуля и переменная bool = true";
?>

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

if ((($a > 0) && ($b < 0)) || ($c == 0))

То есть здесь условие вернёт true, если (($a > 0) И ($b <0)) ИЛИ ($c == 0). В общем, надо научиться читать условия, и обращайте внимание на расстановку скобок, так как именно они задают приоритеты выполнения операций. Советую Вам с последним условием поработать. Напишите простой скрипт, присвойте трём переменным значения и посмотрите, что возвращает данное условие. Потом меняйте значениях переменных и следите за изменениями. Так Вы быстрее получите навык чтения сложных условий, а они, поверьте мне, используются очень часто не только в PHP, но и в других языках программирования.

Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!

Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.

Если Вы не хотите пропустить новые материалы на сайте,
то Вы можете подписаться на обновления: Подписаться на обновления

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

Порекомендуйте эту статью друзьям:

Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):

  1. Кнопка:

    Она выглядит вот так: Как создать свой сайт

  2. Текстовая ссылка:

    Она выглядит вот так: Как создать свой сайт

  3. BB-код ссылки для форумов (например, можете поставить её в подписи):

Комментарии (22):

shwarz shwarz 20.02.2011 02:44:20

Михайл, могу ли я вместо && и || писать более привычное мне "and" и "or" в условии и будет это одно и тоже?

Ответить

Admin Admin 20.02.2011 02:48:39

Большой разницы нет. Единственное, что у "&&" приоритет выше, поэтому сначала будет выполняться "&&", а потом только "and". Та же история и с "||" и "or".

Ответить

sync.o sync.o 17.07.2011 10:46:23

А есть ли какая-нибудь разница между if (isset($v)) и просто if ($v)?

Ответить

Admin Admin 17.07.2011 14:22:03

Да, разница огромная. isset() проверяет существует ли такая переменная. Если, допустим, она имеет значение false, то isset() вернёт true и условие пройдёт. А если if($v) и переменная v=false, то тогда условие не пройдёт.

Ответить

Denis Denis 02.11.2011 23:03:34

Здравствуйте. В кодах 3 и 4 с верху, как мне кажется и моему денверу, есть ошибка.

Ответить

Admin Admin 02.11.2011 23:12:15

Я нашёл только одну ошибку: if (($ab - $cd < 0) && (bool)) Подправил. Других ошибок там нет. Если Вы про последний код, то там нет цели "конечный вариант", а показывается только пример if. Спасибо, что сообщили!

Ответить

Denis Denis 02.11.2011 23:24:09

Это вам спасибо!))

Ответить

Daves Daves 26.02.2012 21:48:04

А почему например тут: if ($x == 0) стоит 2 знака = ???

Ответить

Admin Admin 26.02.2012 21:50:15

Потому что это знак сравнения, а не присваивания.

Ответить

artkhvz artkhvz 25.03.2012 15:54:07

А не проще условия if ((($a > 0) && ($b < 0)) || ($c == 0)) написать вот так: if ($a > 0 && $b < 0 || $c == 0) результат вывода будет такой же...

Ответить

Admin Admin 25.03.2012 15:58:07

Не проще, поскольку тогда создаётся возможность для ошибки из-за приоритетов операций. Поэтому любой программист Вам скажет, что лучше на приоритеты не надеяться и перестраховаться, поставив скобки. Если Вам проще писать так, то, пожалуйста, можно и без лишних скобок писать. А ошибки будете по ходу исправлять.

Ответить

artkhvz artkhvz 25.03.2012 16:29:18

понятно.. просто мне это не объяснили...

Ответить

ppk-center ppk-center 01.12.2012 18:53:36

Спасибо я сделал на сайте так <img src="avatars/avatar <?php if ($_COOKIE["avatar"]=="") { echo "default"; } else { echo $_COOKIE["avatar"]; } ?> .jpg"> и всё работает нормально!

Ответить

Hoso555 Hoso555 25.12.2012 00:00:45

Здесь мне помогли знания о языке Pascal.Кто знает Pascal, может легко учить этот.

Ответить

Promus Promus 26.01.2013 16:48:29

<?php $x = 4; if ($x > 0) echo "Число X положительное"; else if ($x == 0) echo "Число X равно нулю"; else echo "Число X отрицательное"; ?> Вот здесь ошибка у Вас. Скобок нету после условия.

Ответить

Admin Admin 26.01.2013 20:50:46

Никаких ошибок нет. Прежде чем писать, лучше проверьте, работает он или нет. И только если не работает, тогда и сообщать, высказывая свои предположения.

Ответить

PoZaMus PoZaMus 04.06.2013 21:52:25

а разница какая <?php $ab = 17; $cd = 19; $bool = true; if (($ab - $cd < 0) && ($bool)) echo "Разница переменных меньше нуля и переменная bool = true"; ?> и без && ($bool) тож самое получается ?

Ответить

PoZaMus PoZaMus 04.06.2013 22:03:48

короч понял все спасиб за сайт !

Ответить

Admin Admin 04.06.2013 22:04:24

Да, получается, однако, это пример использования && и булевской переменной в if.

Ответить

JokerX JokerX 13.08.2013 17:12:08

((($a > 0) && ($b < 0)) || ($c == 0)) ((($a > 0)-Зачем вы здесь три скобки поставили вполне двух хватает... if(($x<$y) &&($r<$x) ||($x==0)) я вот так сделал...это не хуже?

Ответить

Admin Admin 14.08.2013 17:35:33

Дело не в том, что хуже, так менее наглядно.

Ответить

Phpshnik Phpshnik 05.05.2018 22:36:14

В каждой переменной abcdf в строчке echo, в значении нужно вписывать строку </ br>. Т.к при выводе они будут сливаться с первым выводом.

Ответить

Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.