Работа с конструкциями if-else, switch-case в php

Содержание

  • assert_options — Установка и получение настроек механизма проверки утверждений
  • assert — Проверяет, является ли утверждение FALSE
  • cli_get_process_title — Возвращает заголовок текущего процесса
  • cli_set_process_title — Устанавливает заголовок процесса
  • dl — Загружает расширение PHP во время выполнения
  • extension_loaded — Определить, загружено ли расширение
  • gc_collect_cycles — Принудительный запуск сборщика мусора
  • gc_disable — Отключает сборщик циклических ссылок
  • gc_enable — Включает сборщик циклических ссылок
  • gc_enabled — Возвращает текущее состояние сборщика циклических ссылок
  • gc_mem_caches — Освобождает память, используемую менеджером памяти Zend Engine
  • gc_status — Возвращает информацию о текущем статусе сборщика мусора
  • get_cfg_var — Извлекает значение настройки конфигурации PHP
  • get_current_user — Получает имя владельца текущего скрипта PHP
  • get_defined_constants — Возвращает ассоциативный массив с именами всех констант и их значений
  • get_extension_funcs — Возвращает массив имен функций модуля
  • get_include_path — Получение текущего значения настройки конфигурации include_path
  • get_included_files — Возвращает массив имен включенных в скрипт файлов
  • get_loaded_extensions — Возвращает массив имен всех скомпилированных и загруженных модулей
  • get_magic_quotes_gpc — Получение текущего значения настройки конфигурации magic_quotes_gpc
  • get_magic_quotes_runtime — Получение текущего значения настройки конфигурации magic_quotes_runtime
  • get_required_files — Псевдоним get_included_files
  • get_resources — Возвращает активные ресурсы
  • getenv — Получение значения переменной окружения
  • getlastmod — Получает время последней модификации страницы
  • getmygid — Получить GID владельца скрипта PHP
  • getmyinode — Получает значение inode текущего скрипта
  • getmypid — Получение ID процесса PHP
  • getmyuid — Получение UID владельца скрипта PHP
  • getopt — Получает параметры из списка аргументов командной строки
  • getrusage — Получает информацию об использовании текущего ресурса
  • ini_alter — Псевдоним ini_set
  • ini_get_all — Получает все настройки конфигурации
  • ini_get — Получает значение настройки конфигурации
  • ini_restore — Восстанавливает значение настройки конфигурации
  • ini_set — Устанавливает значение настройки конфигурации
  • magic_quotes_runtime — Псевдоним set_magic_quotes_runtime
  • main — Заглушка для main
  • memory_get_peak_usage — Возвращает пиковое значение объема памяти, выделенное PHP
  • memory_get_usage — Возвращает количество памяти, выделенное для PHP
  • php_ini_loaded_file — Получить путь к загруженному файлу php.ini
  • php_ini_scanned_files — Возвращает список .ini-файлов, найденных в дополнительной ini-директории
  • php_logo_guid — Получение guid логотипа
  • php_sapi_name — Возвращает тип интерфейса между веб-сервером и PHP
  • php_uname — Возвращает информацию об операционной системе, на которой запущен PHP
  • phpcredits — Выводит список разработчиков PHP
  • phpinfo — Выводит информацию о текущей конфигурации PHP
  • phpversion — Получает текущую версию PHP
  • putenv — Устанавливает значение переменной среды
  • restore_include_path — Восстанавливает изначальное значение настройки конфигурации include_path
  • set_include_path — Устанавливает значение настройки конфигурации include_path
  • set_magic_quotes_runtime — Установка текущего значения настройки magic_quotes_runtime
  • set_time_limit — Ограничение времени выполнения скрипта
  • sys_get_temp_dir — Возвращает путь к директории временных файлов
  • version_compare — Сравнивает две «стандартизованные» строки с номером версии PHP
  • zend_logo_guid — Получает Zend guid
  • zend_thread_id — Возвращает уникальный идентификатор текущего потока выполнения
  • zend_version — Получает версию движка Zend

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

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

Операторы сравнения
Пример Название Результат
$a == $b Равно если $a равно $b после преобразования типов.
$a === $b Тождественно равно если $a равно $b и имеет тот же тип.
$a != $b Не равно если $a не равно $b после преобразования типов.
$a <> $b Не равно если $a не равно $b после преобразования типов.
$a !== $b Тождественно не равно если $a не равно $b, или они разных типов.
$a < $b Меньше если $a строго меньше $b.
$a > $b Больше если $a строго больше $b.
$a <= $b Меньше или равно если $a меньше или равно $b.
$a >= $b Больше или равно если $a больше или равно $b.
$a <=> $b Космический корабль (spaceship) Число типа integer меньше, больше или равное нулю, когда $a соответственно меньше, больше или равно $b. Доступно c PHP 7.

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

Для различных типов сравнение происходит в соответствии со следующей таблицей (по порядку).

Сравнение различных типов
Тип операнда 1 Тип операнда 2 Результат
null или string string преобразуется в «», числовое или лексическое сравнение
bool или null что угодно Преобразуется в тип bool, <
object object Встроенные классы могут определять свои собственные правила сравнения, объекты разных классов не сравниваются, про сравнение объектов одного класса см. Сравнение объекта
string, resource или string, resource или Строки и ресурсы переводятся в числа, обычная математика
array array Массивы с меньшим числом элементов считаются меньше, если ключ из первого операнда не найден во втором операнде — массивы не могут сравниваться, иначе идет сравнение соответствующих значений (см. пример ниже)
array что угодно тип array всегда больше
object что угодно тип object всегда больше

Пример #1 Сравнение boolean/null


Пример #2 Алгоритм сравнения обычных массивов

Внимание

Сравнение чисел с плавающей точкой

Из-за особого внутреннего представления типа float, не нужно проверять на равенство два числа с плавающей точкой (float).

Для более подробной информации смотрите документацию по типу float.

Объекты и строки

Еще более эффектное использование PHP (сравнение строк) может быть реализовано посредством объектно-ориентированных идей.

Современное представление об объектах предполагает наличие у них свойств и методов. Первые обычно представлены числами, строками, массивами и другими объектами. Вторые зачастую включают в себя методы записи (put) в строку и восстановления из строки (get).

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

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

Идентификаторы

Идентификатором называется последовательность букв, цифр и символов подчёркивания ( _ ). Идентификаторы выступают в качестве имён переменных, функций, свойств объекта, и т. д. При выборе идентификатора необходимо учитывать следующие правила:

  • Идентификаторы не могут совпадать ни с одним из ключевых слов PHP, т. к. они являются частью синтаксиса самого языка и имеют специальное значение для интерпретатора.
  • Идентификаторы могут состоять из одного и более символов.
  • Идентификаторы должны начинаться с буквы или символа подчёркивания. Далее могут следовать любые буквы, цифры и символы подчёркивания в любом количестве.

Примеры допустимых идентификаторов в качестве имён переменных:

$x
$my_var
$_myCar2

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

$age = 35;             // Возраст
$hairColor = "Чёрный"; // Цвет волос
$year = 1900;          // Год

Есть два устоявшихся негласных стиля используемых для записи идентификаторов, состоящих из нескольких слов: CamelCase и Snake_case.

CamelCase — «Верблюжья» нотация (нотация — это устоявшиеся правила записи). Согласно этому стилю идентификаторы, которые состоят из одного слова, пишутся строчными буквами:

$color = "серый";
$number = 15;

Если идентификатор состоит более, чем из одного слова, то первое слово пишется строчными буквами, а каждое последующее слово начинается с прописной (заглавной) буквы:

$myAge = 23;
$firstName = "Дональд";

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

Snake_case — «Змеиная» нотация. Согласно этому стилю идентификаторы, которые состоят из одного слова, пишутся строчными буквами:

$color = "белый";
$number = 25;

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

$my_age = 23;
$first_name = "Дональд";

Преимущества использования РНР

Для начала рассмотрим положительные моменты использования языка программирования PHP

  • язык очень прост в изучении;
  • PHP поддерживается практически на всех наиболее используемых платформах и почти во всех ОС;
  • в основе языка лежат две наиболее популярные парадигмы программирования – объектная и процедурная;
  • язык — скриптовый, это означает, что РНР-код можно встраивать непосредственно в НТML-документы;
  • эффективное взаимодействие с широким спектром разнообразных баз данных, файловых систем, электронной почтой;
  • встроена поддержка достаточно большого количества современных баз данных, включены функции для работы с файловой системой.

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

Переменные в 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

Количество операндов

Разные операторы принимают разное количество операндов. Операторы, которые работают с двумя операндами называются бинарными, к таким операторам относятся сложение, вычитание умножение и т.д.

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

Логическое ИЛИ (OR и ||)

Оператор логическое ИЛИ обозначается как или . Он выполняет операцию «логическое ИЛИ» над двумя операндами. Если один или оба операнда имеют истинное значение, он возвращает . Если оба операнда имеют ложные значения, он возвращает . У вас вероятно возник вопрос, зачем же сделали два варианта одного оператора? Смысл двух разных вариантов оператора «логическое ИЛИ» в том, что они работают с различными приоритетами.

Сначала разберем как работает оператор . И так, если один или оба его операнда имеют истинное значение, он возвращает . Если оба операнда возвращают ложные значения, он вернет .

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

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

<?php

  // Оператор "||" имеет больший приоритет, чем "or"

  // Результат выражения (false || true) будет присвоен переменной $var1
  // Действие приоритета: $var1 = (false || true)
  $var1 = false || true;

  echo $var1; // => 1

  // Сначала переменной присваивается значение false, а затем вычисляется второй операнд
  // Действие приоритета: ($var2 = false) or true
  $var2 = false or true;  

  echo $var2;  // false не выводится

  // ($var3 = 0) or 3
  $var3 = 0 or 3; 

  echo "<br>$var3";   // => 0

?>

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

<?php

  $a = (6 == 6) || (4 <= 9);

  // или так
  echo ('c' != 'd') or ('A' === 'A');

?>

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

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

PHP условие:

В PHP есть два вида условий, первый это if, второй switch, мы оба рассмотрим.

PHP оператор if else:

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

PHP

1 2 3 4 5 6 7 8

$a=10;

$b=1;

  // если $a больше $b

if($a>$b){

// Выводим на экран $a больше $b

echo’$a больше $b’;

}

Это код выводит надпись «$a больше $b«, если $b будет больше или равно, то он не чего не выведет.

Также  есть ещё условие иначе, то есть если первый условие не верно, возвращает false, то будет выводить на экран что то другое, пишется оно так.

PHP

1 2 3 4 5 6 7 8 9 10 11

$a=10;

$b=10;

  // если $a больше $b

if($a>$b){

// Выводим это на экран

echo’$a больше $b’;

}else{// иначе

// Выводим на экран $a меньше или равно $b

echo’$a меньше или равно $b’;

}

Думаю тут всё понятно, в этом случаи выводит «$a меньше или равно $b«, так как что $a, что $b, у нас равны 10.

Но также есть возможность просто писать несколько условий, делается это в PHP через условие if else, а точнее через elseif.

PHP

1 2 3 4 5 6 7 8 9 10 11 12 13 14

$a=10;

$b=10;

  // если $a больше $b

if($a>$b){

// Выводим это на экран

echo’$a больше $b’;

}elseif($a==$b){// если $a равно $b

// Выводим на экран $a равно $b

echo’$a равно $b’;

}else{// иначе

// Выводим на экран $a меньше $b

echo’$a меньше $b’;

}


Этих условий может быть хоть сколько, бесконечно, в нашем случае выводит на экран «$a равно $b«.

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

Default

1 2 3 4 5 6 7 8 9 10 11

// если $a больше $b

if($a>$b)

// Выводим это на экран

echo’$a больше $b’;

elseif($a==$b)// если $a равно $b

// Выводим на экран $a равно $b

echo’$a равно $b’;

else// иначе

// Выводим на экран $a меньше $b

echo’$a меньше $b’;

endif;

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

PHP оператор switch:

Есть ещё оператор switch в PHP, про него не чего особо сказать, единственное, он сравнивает равенство значений и всё, поэтому я покажу только, как он пишется.

Default

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20

switch($a){

// Если $a равно 0

case

// Выводит на экран $a равно 0

echo’$a равно 0′;

// Конец, остальные условия не будут проверятся

break;

// Если $a равно 1

case1

// Выводит на экран $a равно 1

echo’$a равно 1′;

// Конец, остальные условия не будут проверятся

break;

// Если $a равно 2

case2

// Выводит на экран $a равно 2

echo’$a равно 2′;

// Конец, остальные условия не будут проверятся

break;

}

Как видите всё очень просто, только надо сказать что такое break, он просто выходит из switch, после того как условие выполнилось.

Подробнее про switch посмотрите лучше здесь.

PHP тернарный оператор:

Про него тоже практически нечего сказать, это просто сокращение от if else, поэтому покажу только как происходить в php использование тернарного оператора.

Default

1 2

$str=$a>$b?’$a больше $b»$a меньше или равно $b’;

echo$str;

Сначала идёт условие, после вопросительного знака, что должно присвоить переменной, если условие равно true, после двойных точек, что должно присвоить переменной случае false.

Булевый тип данных:

Булевый тип данных, можно ещё назвать двоичным, так как он имеет только два значения, true или false, до словно это значит правда или ложе, также можно сказать 1 или 0, но всё же лучше говорить по английски, так как надо.

Операторы сравнений:

Буливый тип данных можно получить использовав в PHP операторы условий или операторы сравнений, их достаточно много в PHP.

PHP

1 2 3 4 5 6 7 8 9 10 11

$a=10;

$b=3;

$c=$a>$b// $a больше $b, $c будет равен true

$c=$a<$b// $a меньше $b, $c будет равен false

$c=$a>=$b// $a больше или равно $b, $c будет равен true

$c=$a<=$b// $a меньше или равно $b, $c будет равен false

$c=$a==$b// $a равно $b, $c будет равен false

$c=$a!=$b// $a не равно $b, $c будет равен true

$c=$a===$b// $a строго равно $b, $c будет равен false

$c=$a!==$b// $a строго не равно $b, $c будет равен true

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

То есть если вы сравниваете в PHP, к примеру, true и 10, то в итоге вы получите true, а если будите строго сравнивать, то получите false, потому что разные типы данных.

PHP

1 2

10==true;// Будет равно true

10===true;// Будет равно false


Точно также с оператором не равно.

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

Есть ещё в PHP логические операторы, их всего три, и, или и не.

PHP

1 2 3 4 5 6

$a=true;

$b=false;

$c=$a&&$b;// Логическое и, возвращает true, если два значение равно true, $c равно false

$c=$a||$b;// Логическое или, возвращает true, если хотя бы одно значение равно true, $c равно true

$c=!$a;// Логическое не, просто отзеркаливает значение

Думаю с первыми двумя всё понятно, а вот с последним не очень, он просто превращает значение в противоположное, то есть если было True, то в Fslse и наоборот.

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

Тернарный оператор, т.е. с тремя операндами, имеет достаточно простой синтаксис, в котором слева от знака записывается условие, а справа — два оператора разделенные знаком , слева от знака выполняется оператор при истинности условия, а справа от знака выполняется оператор при ложном условии.

Пример: если значение переменной меньше 60, то выводить сообщение «Показания скорости в норме», иначе выводить сообщение «Скорость превышена!»

1
2
3
4
<?php
$speed = 45;
echo ($speed < 60) ? "Показания скорости в норме"  "Скорость превышена!"; 
?>

Задание php 3_5: выполнить предыдущее задание (), используя тернарный оператор и

PHP Comparison Operators

The PHP comparison operators are used to compare two values (number or string):

Operator Name Example Result Show it
== Equal $x == $y Returns true if $x is equal to $y Try it »
=== Identical $x === $y Returns true if $x is equal to $y, and they are of the same type Try it »
!= Not equal $x != $y Returns true if $x is not equal to $y Try it »
<> Not equal $x <> $y Returns true if $x is not equal to $y Try it »
!== Not identical $x !== $y Returns true if $x is not equal to $y, or they are not of the same type Try it »
> Greater than $x > $y Returns true if $x is greater than $y Try it »
< Less than $x < $y Returns true if $x is less than $y Try it »
>= Greater than or equal to $x >= $y Returns true if $x is greater than or equal to $y Try it »
<= Less than or equal to $x <= $y Returns true if $x is less than or equal to $y Try it »
<=> Spaceship $x <=> $y Returns an integer less than, equal to, or greater than zero, depending on if $x is less than, equal to, or greater than $y. Introduced in PHP 7. Try it »

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

Существуют следующие логические операторы, поддерживаемые языком PHP

Предположим, что переменная A содержит 10, а переменная B имеет 20, тогда —

Оператор Описание Пример
аnd Вызывается логическим оператором AND. Если оба операнда верны, условие становится истинным. (A и B) истинно.
or Вызывается логическим оператором OR. Если какой-либо из двух операндов неравен нулю, то условие становится истинным. (A или B) истинно.
&& Вызывается логическим оператором AND. Если оба операнда не равны нулю,условие становится истинным. (A && B) истинно.
|| Вызывается логическим оператором OR. Если какой-либо из двух операндов неравен нулю, то условие становится истинным. (A || B) истинно.
! Вызывается логическим оператором NOT. Используется для изменения логического состояния операнда. Если условие истинно, то логический оператор NOT сделает ложным. ! ( A && B) является ложным.

Оператор == (равенства)

Оператор == (равенства ) принимает операнды любого типа, если два операнда равны, возвращается значение true , в противном случае — false .

Если операнды имеют разные типы данных, PHP попытается преобразовать их перед сравнением к одному типу, например такое выражение «4» == 4 вернёт значение true , так как PHP автоматически приведет сравниваемые значения к одному типу данных. Аналогично, выражение $a == 1 вернёт значение true , если переменная $a содержит значение 1. Если требуется избежать неявного преобразования типов при сравнении, то следует использовать оператор идентичности, который будет рассмотрен далее.

<?php $var1 = 5; $var2 = «5»; var_dump(14 == «14»); // вернет true var_dump(5 == «hot»); // вернет false var_dump($var1 == $var2); // вернет true ?>

PHP — The if…elseif…else Statement

The statement executes different codes for more than two conditions.

Syntax

if (condition) {   code to be executed if this condition is true;} elseif (condition) {   code to be executed if first condition is false and this condition is true;} else {   code to be executed if all conditions are false;}

Example

Output «Have a good morning!» if the current time is less than 10, and «Have a good day!» if the current time is less than 20. Otherwise it will output «Have a good night!»:

<?php $t = date(«H»);if ($t < «10») {   echo «Have a good morning!»; } elseif ($t < «20») {   echo «Have a good day!»; } else {   echo «Have a good night!»; } ?>

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

Оператор выполняет разные коды для более чем двух условий.

Синтаксис

if (состояние) {     код, который будет выполнен, если это условие true;} elseif (состояние) {     код, который будет выполнен, если первое условие false и это условие true;} else {     код, который будет выполнен, если все условия false;}

Пример

Выведет «Have a good morning!» если текущее время меньше 10, и «Have a good day!» если текущее время меньше 20. В противном случае будет выведено «Have a good night!»:

<?php $t = date(«H»);if ($t < «10») {     echo «Have a good morning!»; } elseif ($t < «20») {     echo «Have a good day!»; } else {     echo «Have a good night!»; } ?>

Выражения

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

Выражения делятся на простые (их также называют первичными) и сложные. Первичные выражения являются самостоятельными выражениями — они не включают в себя ещё более простых выражений. Например, к первичным выражениям относятся: идентификаторы, литералы и оператор группировки. Сложные выражения состоят из простых выражений. Типичный способ конструирования сложных выражений из простых выражений заключается в использовании операторов:

// Примеры первичных выражений
11                        // Числовой литерал
$str                      // Возвращает значение переменной
[]                        // Литерал массива
()                        // Оператора группировки

// Примеры сложных выражений
$alpha + 19                // Возвращает результат арифметической операции
($alpha - 37) * $beta / 2  // Возвращает результат арифметических операций
foo()                      // Возвращает результат вызова функции
$mass                   // Возвращает значение элемента массива

Некоторые выражения, так же как и инструкции, оканчиваются точкой с запятой, например:

$a = 5;

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


С этим читают