Странные операторы в php

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

Операторы сравнения PHP используются для сравнения двух значений (число или строка):

Оператор Имя Пример Результат Запуск
== Equal $x == $y Возвращает значение true, если $x равно $y
=== Identical $x === $y Возвращает значение true, если $x равно $y, и они имеют одинаковый тип
!= Not equal $x != $y Возвращает значение true, если $x не равно $y
<> Not equal $x <> $y Возвращает значение true, если $x не равно $y
!== Not identical $x !== $y Возвращает значение true, если $x не равно $y, или они не одного типа
> Greater than $x > $y Возвращает значение true, если $x больше $y
< Less than $x < $y Возвращает значение true, если $x меньше $y
>= Greater than or equal to $x >= $y Возвращает значение true, если $x больше или равно $y
<= Less than or equal to $x <= $y Возвращает значение true, если $x меньше или равно $y

Оператор if else

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

Синтаксис оператора :

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

Немного изменив наш предыдущий пример, мы можем увидеть, как работает оператор , если условие возвращает значение :

<?php

  $username = 'Holly';

  if ($username == 'Admin') {
    echo 'Добро пожаловать на страницу администратора.';
  }
  else {
    echo 'Добро пожаловать в гостевую страницу';
  }

?>

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

<?php

  if($i) {                // внутренний блок if($i)
    if($a) инструкция;
    if($b) инструкция; 
    else  инструкция; // этот else относится к if($b) - так как он ближе 
  }
  else инструкция; // этот else относится к if($i)

?>

Последний не относится к , так как он находится не во внутреннем блоке, поэтому ближайший к нему получается . Оператор расположенный внутри блока относится к , потому что этот — является ближайшим к нему.

Двойное условие if-else

Где можно его применить? Когда я создавал для одного сайта админ-панель, то использовал двойное условие для проверки логина и пароля.
Чтобы создать двойное условие, нужно добавить еще две переменные, например: $k = 55; $n = 88.
Это будет выглядеть вот так:

if ($a != $b and $k != $n)

and – вы уже знаете, что это означает логическое «и».

Как это будет выглядеть в PHP-коде:

<html>
<head>
<title>основы php на BlogGood.ru</title>
</head>
<body>
<?php
$a=5;
$b=5;
$k=55;
$n=88;

if ($a == $b and $k != $n)
{
echo "Все ОK :)";
}
else
{
echo "Не все ОК :(";
}
?>
</body>
</html>

Разъяснение:
Смотрите, в условии мы указали, что если переменные $a с $b равны ($a == $b) и переменные $k с $n не равны ($k != $n), условие будет считаться правильным. А если условие правильное, значит, будет работать эта часть кода:

{
echo «Все ОK :)»;
}

Сохраните код PHP как «if-else.php» в папку «test-1» локального сервера (см. урок 1).

Введите в браузере адрес:

Результат:

Если значение переменой $a поменять на противоположное значение переменной $b, то условие будет невыполнимо!  Почему? Да потому, что переменные ($a == $b) не равны между собой. Если условие не выполнено, будет работать другая часть кода:

else
{
echo «Не все ОК : («;
}

Как это выглядит в PHP-коде:

<html>
<head>
<title>основы php на BlogGood.ru</title>
</head>
<body>
<?php
$a=10;
$b=5;
$k=55;
$n=88;

if ($a == $b and $k != $n)
{
echo "Все ОK :)";
}
else
{
echo "Не все ОК :(";
}
?>
</body>
</html>

Сохраните код PHP как «if-else.php» в папку «test-1» локального сервера (см. урок 1).

Введите в браузере адрес:

Результат:

Инструкция switch

Инструкция switch сравнивает выражение с несколькими значениями. Как правило, в качестве выражения используется переменная, в зависимости от значения которой должен быть исполнен тот или иной блок кода. Например, представим себе переменную $action, которая может иметь значения «ADD» (добавить), «MODIFY» (изменить) и «DELETE» (удалить).
Инструкция switch позволяет легко определить блок кода, который должен исполняться для каждого из этих значений.

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

Проверка на соответствие одному из нескольких значений (инструкция if)

Проверка на соответствие одному из нескольких значений (инструкция switch)

Инструкция switch берет значение, стоящее рядом с ключевым словом switch, и начинает сравнивать его со всеми значениями, стоящими рядом с ключевыми словами case, в порядке их расположения в программе. Если соответствие не найдено, не исполняется ни один из блоков. Как только совпадение обнаружено, выполняется соответствующий блок кода. Расположенные ниже блоки кода также исполняются – до конца инструкции switch или до ключевого слова break. Это удобно для
организации процесса, состоящего из нескольких последовательных шагов. Если пользователь уже проделал некоторые шаги, он сможет продолжить процесс с того места, на котором прервался.

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

Выбор по умолчанию

Если значение условного выражения не совпало ни с одним из предложенных в инструкциях case вариантов, инструкция switch и в этом случае позволяет что-то сделать, примерно как инструкция else конструкции if, elseif, else. Для этого нужно последним вариантом в списке выбора сделать инструкцию default:

Создание сообщения об ошибке с помощью инструкции default

Кроме обычного, инструкция switch поддерживает альтернативный синтаксис – конструкцию из ключевых слов switch/endswitch, определяющих начало и конец инструкции вместо фигурных скобок:

Инструкция switch завершается ключевым словом endswitch

Прерывание исполнения

Если должен быть исполнен только блок кода, соответствующий определенному значению, то в конце этого блока следует вставить ключевое слово break. Интерпретатор PHP, встретив ключевое слово break, перейдет к исполнению строки, расположенной после закрывающей фигурной скобки инструкции switch (или ключевого слова endswitch). Но если не использовать инструкцию break то проверка продолжается в последующих ветвях case конструкции switch. Ниже показан пример:

Что происходит при отсутствии операторов break

Если переменная $action будет иметь значение «ASSEMBLE ORDER», результат работы этого фрагмента будет следующим:

Собрать заказ.
Упаковать.
Доставить заказчику.

Если предположить, что стадия сборки уже была пройдена, и переменная $action имеет значение «PACKAGE», то будет получен следующий результат:

Упаковать.
Доставить заказчику.

Иногда, отсутствие операторов break бывает полезным, как в приведенном примере, где формируются стадии заказа, но в большинстве случаев следует использовать этот оператор.

Оператор if

Оператор if является наиболее простым из операторов ветвлений.

Синтаксис оператора :

Оператор сначала вычисляет условное выражение указанное в круглых скобках, результатом этого выражения является булево значение. Если полученный результат является истинным (), то инструкция выполняется. Если выражение возвращает ложное значение (), то инструкция не выполняется. В качестве условия может применяться выражение любой сложности.

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

Обратите внимание на то, что после закрывающей фигурной скобки не следует ставить точку с запятой

Следующий код демонстрирует применение оператора :

<?php

$a1 = 5;

// Если значение переменной меньше 100, выполнить инструкцию, следующую за оператором if
if ($a1 < 100)
  echo "Число $a1 меньше, чем 100";
  
// переменная $username никак не инициализирована: по умолчанию значение null
// с помощью оператора (Логическое НЕ) инвертируем значение в TRUE
if (!$username) {
  $username = "User";
  // и выводим имя пользователя на экран
  echo $username;
}

?>

Операторы могут быть вложенными в другие операторы :

<?php
  
  $a = 0;
  $b = 50;
  $i = 10;
  $j = 15;
  
  // Если выражение "i == 10" возвращает true
  if($i == 10)
    // то выполняется проверка условного выражения вложенного оператора if
    if ($j < 20) $a = $b;
 
?>

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

Вложенные конструкции if-else.

Что называют вложенными конструкциями if-else?  Это такие конструкции, которые состоят из нескольких условий.

Теперь рассмотрим вложенные конструкции if-else. Такие конструкции могут состоять из нескольких условий в выполняемых правилах. Для примера добавим еще две переменные $familiya1 и $familiya2:

$familiya1=»ivanov»;$familiya2=»sidarov»;

Как это выглядит в PHP-коде:

<html>
<head>
<title>основы php на BlogGood.ru</title>
</head>
<body>
<?php
$a=5;
$b=5;
$k=55;
$n=88;
$familiya1="ivanov";
$familiya2="sidarov";

if ($a == $b and $k != $n)
{
if ($familiya1 != $familiya2)
{
echo "Все ОK :)<br>
В переменных familiya1 и familiya2 содержатся разные фамилии.";
}
else
{
echo "Не так все плохо, как вам кажется :(<br>
В переменных familiya1 и familiya2 содержатся одинаковые фамилии.";
}
}
else
{
echo "Не все ОК :(";
}
?>
</body>
</html>

Разъяснение:
Смотрите, здесь были выполнены все условия

if ($a == $b and $k != $n)

Переменная $a равная с переменной $b и переменная $k не равная с $n. Здесь условия были выполнены, а это значит, что будет работать эта часть кода:

if ($familiya1 != $familiya2){echo «Все ОK : )<br>В переменных familiya1 и familiya2 содержатся разные фамилии.»;}

Так как переменные $familiya1  и  $familiya2 между собой не равны и это правда,

$familiya1=»ivanov»;$familiya2=»sidarov»;

то будет работать вот эта часть кода:

{echo «Все ОK : )<br>В переменных familiya1 и familiya2 содержатся разные фамилии.»;}

Смотрим результат! Сохраните код PHP как «if-else.php» в папку «test-1» локального сервера (см. урок 1).

Введите в браузере адрес:

Результат:

Если в переменных $familiya1 и $familiya2 сделать значение одинаковыми:

$familiya1=»sidarov»;$familiya2=»sidarov»; 

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

if ($familiya1 != $familiya2)

Вот по этой причине будет работать вот эта часть кода:

else{echo «Не так все плохо, как вам кажется : (<br>В переменных familiya1 и familiya2 содержатся одинаковые фамилии.»;}

В результате на мониторе вы увидите картинку:

Вот мы и закончили полностью тему «Оператор условия if-else для PHP». Чтобы закрепить «Урок 5» и «Урок 6», рекомендую самостоятельно поработать над созданием собственных условий.

А я пойду готовить для вас новые уроки по основам PHP. Подписывайтесь на обновления блога, если не хотите пропустить уроки по PHP.
Всего хорошего!

Понравился пост? Помоги другим узнать об этой статье, кликни на кнопку социальных сетей ↓↓↓

Популярные статьи:

  • Как узнать id компьютера
    Дата: 29 Март 2013
    Прокомментировано:90
    просмотров: 312382

  • Размеры форматов листов А0 – А7
    Дата: 23 Январь 2013
    Прокомментировано:3
    просмотров: 260733

  • Смешные логические загадки с подвохом, отгадки прилагаются
    Дата: 12 Ноябрь 2014
    Прокомментировано:5
    просмотров: 186181

  • Установка windows 7 на ноутбук
    Дата: 18 Декабрь 2012
    Прокомментировано:169
    просмотров: 181098

  • Как включить или отключить Aero в Windows 7
    Дата: 1 Июнь 2013
    Прокомментировано:6
    просмотров: 152594

Оператор условия if-else

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

Вернемся теперь к примерам PHP и попробуем по этой схеме написать код:

Сохраните как «if-else.php» в папку «test-1» локального сервера (см. урок 1).

Введите в браузере адрес:

Результат:

Как видите, переменная $name и $n равны. Значит, условие является истиной.

$name = «bloggood.ru»;$n = «bloggood.ru»;
if ( $name == $n )

Давайте поменяем значение и сделаем условие ложным, для этого поменяйте в переменной значение, например, так:

$name = «bloggood.ru»;$n = «blog»;
if ( $name == $n )

можно и вот так:

$name = «bloggood.ru»;$n = «bloggood.ru»;
if ( $name != $n )

Теперь напишем PHP-код:

Результат:

Разъяснение:

В условиях мы сравнили переменную $name с переменной $n. Когда в переменных было одинаковое значение, а в условиях стоял знак равенства (==), условие было истинным, работала эта часть кода:

{echo «Рад видеть вас на моем блоге $name!<br />»;}

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

else{echo «действие ложное<br />»;}

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

Еще раз на заметку!

До скорых встреч!

Понравился пост? Помоги другим узнать об этой статье, кликни на кнопку социальных сетей ↓↓↓

Популярные статьи:

  • Как узнать id компьютера
    Дата: 29 Март 2013
    Прокомментировано:90
    просмотров: 312384

  • Размеры форматов листов А0 – А7
    Дата: 23 Январь 2013
    Прокомментировано:3
    просмотров: 260735

  • Смешные логические загадки с подвохом, отгадки прилагаются
    Дата: 12 Ноябрь 2014
    Прокомментировано:5
    просмотров: 186185

  • Установка windows 7 на ноутбук
    Дата: 18 Декабрь 2012
    Прокомментировано:169
    просмотров: 181099

  • Как включить или отключить Aero в Windows 7
    Дата: 1 Июнь 2013
    Прокомментировано:6
    просмотров: 152595

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

Оператор ?: – это тернарный (трехместный) оператор, который принимает три операнда. Он работает аналогично инструкции if, но возвращает значение одного из двух выражений. Выражение, которое будет вычисляться, определяется условным выражением. Двоеточие (:) служит разделителем выражений:

(условие) ? вычислить_если_условие_истинно : вычислить_если_условие_ложно;

В примере ниже проверяется значение, и в зависимости от его значения (TRUE или FALSE) возвращаются разные строки:

Создание сообщения с помощью оператора ?:

Вполне очевидно, что приведенный выше оператор эквивалентен следующему оператору:

Код PHP

Типы операндов

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

'a' * 'b'

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

'10' * '10'

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

Примечание: Когда PHP выполняет автоматическое преобразование типа, это называется неявным приведением типа, если преобразование типа выполняется вручную — это называется явным приведением типа.

Инструкция if — else

Инструкция if позволяет исполнить блок кода, если условное выражение в этой инструкции имеет значение TRUE; в противном случае блок кода не исполняется. В качестве условия может применяться любое выражение, включающее проверки на ненулевое значение, равенство, NULL с участием переменных и значений, возвращаемых функциями.

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

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

Синтаксис инструкции if:

if (условное выражение)
{
    блок программного кода;
}

Если в результате вычисления условного выражения получается значение TRUE, то блок программного кода, расположенный после него, будет исполнен. В следующем примере если переменная $username имеет значение ‘Admin’, будет выведено приветственное сообщение. В противном случае ничего не произойдет:

Код PHP

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

Необязательная инструкция else – это блок программного кода, исполняемый по умолчанию, когда условное выражение возвращает значение FALSE. Инструкцию else нельзя использовать отдельно от инструкции if, поскольку у else нет собственного условного выражения. То есть else и if в вашем коде всегда должны быть вместе:

Инструкции if и else

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

Все это хорошо, кроме случаев, когда вам требуется проверить несколько условий подряд. Для этого подойдет инструкция elseif. Она позволяет проверять дополнительные условия, пока не будет найдено истинное или достигнут блок else. У каждой инструкции elseif есть собственный блок кода, размещаемый непосредственно после условного выражения инструкции elseif. Инструкция elseif идет после инструкции if и перед инструкцией else, если таковая имеется.

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

Проверка нескольких условий

Здесь проверяется два условия, и, в зависимости от значения переменной $username, выполняются разные действия. И еще есть возможность что-то сделать, если значение переменной отличается от первых двух.

Проходим через различные управляющие структуры

В предыдущем разделе мы изучили основы структур управления в PHP и их полезность при разработке приложений. В этом разделе мы рассмотрим пару важных структур управления, которые вы часто используете в повседневной разработке приложений.

If

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

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

Вышеприведенный пример должен выводить потому что выражение принимает значение true. Фактически, если вы хотите выполнить только один оператор, приведенный выше пример можно переписать, как показано в следующем фрагменте без скобок.

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

Else

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

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

Давайте рассмотрим предыдущий пример, чтобы понять, как он работает.

Поэтому, когда у вас есть два варианта, и один из них должен быть выполнен, вы можете использовать конструкцию .

Else If

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

Давайте рассмотрим базовую структуру инструкции , как показано в следующем псевдокоде.

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

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

Switch

Оператор switch несколько похож на оператор , который мы только что обсуждали в предыдущем разделе. Единственное отличие — это проверенное выражение.

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

Как обычно, пример это лучший способ понять оператор .

Как вы можете видеть в приведенном выше примере, мы хотим проверить значение переменной и на основе значения переменной мы хотим вывести сообщение.

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

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

Это был обзор структур условного контроля. Мы обсудим циклы в PHP в следующем разделе.

Условный оператор „?“

Иногда нам нужно определить переменную в зависимости от условия.

Например:

Так называемый «условный» оператор «вопросительный знак» позволяет нам сделать это более коротким и простым способом.

Оператор представлен знаком вопроса . Его также называют «тернарный», так как этот оператор, единственный в своём роде, имеет три аргумента.

Синтаксис:

Сначала вычисляется : если оно истинно, тогда возвращается , в противном случае – .

Например:

Технически, мы можем опустить круглые скобки вокруг . Оператор вопросительного знака имеет низкий приоритет, поэтому он выполняется после сравнения .

Этот пример будет делать то же самое, что и предыдущий:

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

В примере выше вы можете избежать использования оператора вопросительного знака , т.к. сравнение само по себе уже возвращает :

Несколько операторов „?“

Последовательность операторов вопросительного знака позволяет вернуть значение, которое зависит от более чем одного условия.

Например:

Поначалу может быть сложно понять, что происходит. Но при ближайшем рассмотрении мы видим, что это обычная последовательная проверка:

  1. Первый знак вопроса проверяет .
  2. Если верно – возвращает . В противном случае, проверяет выражение после двоеточия „»:»“, вычисляет .
  3. Если это верно – возвращает . В противном случае, проверяет выражение после следующего двоеточия „»:»“, вычисляет .
  4. Если это верно – возвращает . В противном случае, возвращает выражение после последнего двоеточия – .

Вот как это выглядит при использовании :

Флешки для iPhone

Логины и пароли ютуб : как поставить или поменять их в 2 клика

Оператор присваивания и слияние переменных

Переменные в php используются со знаком непосредственно перед идентификатором:

$mymane = "Иван";

Вывод значений переменных:

echo "Я изучаю РНР";
// или
print "Я изучаю РНР";

Присваивание значений других переменных:

$test1 = $test2;
echo $a, " ", $b; 
// или
echo $a; echo " "; echo $b;

Примеры:

1
2
3
4
5
6
7
8
<?php
$first = 'text1';
$second = $first;
$first = 'new text';
 
echo "Переменная first равна $first <br>";
echo "Переменная second равна". $second;
?>

Как видно из примера, оператор присваивания в php — это знак равенства.

Результатом выполнения программы будет:

Переменная first равна new text

Переменная second равна text1

Заключение

Разработчики ОС Windows 10 позаботились о том, чтобы изменение языкового пакета было максимально простым и удобным даже для начинающего пользователя. Все описанные способы полностью рабочие.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Adblock
detector