Операторы PHP

Поділитись


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

Полный список уроков этой главы:

Часть 1

Математические операторы и математические функции PHP


Числовые данные обрабатываются при помощи таких операторов PHP:+сумма двух чисел-разность чисел/частное от деления двух чисел%остаток от деления

<?php
echo "2 + 2 = ", 2 + 2, "<br>"; 
echo "5 - 2 = ", 5 - 2, "<br>"; 
echo "10 * 10 = ", 10 * 10, "<br>"; 
echo "100 / 2 = ", 100 / 2, "<br>"; 
echo "10 % 2 = ", 10 % 2, "<br>";
?>

Отображение в браузере

2 + 2 = 4 
5 - 2 = 3
10 * 10 = 100
100 / 2 = 50
10 % 2 = 0

Математические функции

PHP имеет огромное количество математических функций, вот их полный перечень:

  • Abs. Модуль числа.
  • Sin. Синус.
  • Sinh. Гиперболический синус.
  • Cos. Косинус
  • Cosh. Гиперболический косинус.
  • Acos. Арккосинус
  • Acosh. Гиперболический арккосинус.
  • Asin. Арксинус.
  • Asinh. Гиперболический арксинус.
  • Atan2. Арктангенс частного двух переменных.
  • Tan. Тангенс.
  • Tanh. Гиперболический тангенс.
  • Atan. Арктангенс.
  • Atan. Гиперболический арктангенс
  • Base_convert. Преобразование числа в строковом представлении из одной системы
    счисления в другую.
  • Decoct. Преобразование числа в восьмеричное представление в виде строки.
  • Bindec. Преобразование строки, предоставленной в двоичном числе, в целое значение.
  • Octdec. Преобразование строки, представляющей восьмеричное число, в целое число.
  • Hexdec. Преобразование строки, которая представляет шестнадцатеричное число, в целое число.
  • Ceil. Округление числа в большую сторону.
  • Floor. Округление числа в меньшую сторону.
  • Deg2rad. Градусы в радианы.
  • Exp. Вычисление экспоненты числа.
  • Fmod. Остаток от деления двух чисел.
  • Getrandmax. Макс. значение, которое получают функцией rand()
  • Hypot. Вычисление гипотенузы по двум катетам.
  • Is_finite. Проверка, является ли число конечным вещественным числом.
  • Is_infinite. Проверка, является ли число бесконечностью.
  • Is_nan. Проверка, является ли значение Не числом(Not-A-Number).
  • Lcg_value. Генератор случайных чисел.
  • Log10. Десятичный логарифм.
  • Log. Натуральный логарифм.
  • Max. Максимум заданных чисел.
  • Min. Минимум заданных чисел.
  • Mt_getrandmax. Макс. значение, которое можно получить функцией mt_rand.
  • Mt_rand. Генератор псевдослучайных чисел по алгоритму.
  • Pi. Значение числа π.
  • Pow. Возведение в степень.
  • Round. Округляет число типа float.
  • Sqrt. Квадратный корень.
<?php
echo "round(4.2) = ", round(4.2), "<br>"; 
?>

Отображение в браузере

round(4.2) = 4

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


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

<?php
$fruits = 14;
?>

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

<?php
$n = $m = $p = 3; 
echo $n, $m, $p;
?>

Отображение в браузере:

333

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

  • +=
  • -=
  • /=
  • .=
  • %=
  • &=
  • |=
  • ^=
  • <=
  • >=

Например, если нужно прибавить 55 к значению переменной $number, это можно записать как:
$number = $number + 55, а если использовать комбинированный оператор, то так: $number += 55.

Увеличение и уменьшение


Довольно часто в ходе написания PHP скрипта нужно или добавить к переменной единицу, либо отнять.

Для этого в PHP есть специальные операторы. Например, если есть переменна $a = 0, то чтобы добавить 1 к этой переменной нужно написать: $a++, это значит, что к переменной  будет добавлена единица, если нужно отнять 1, то нужно записать так: $a--.

Оператор ++ называют инкрементом, а -- декрементом.++$aПре-инкремент. Увеличивает значение на единицу, затем возвращает значение$a++Пост-инкремент. Возвращает текущее значение, после чего увеличивает его на единицу.–$aПре-декремент. Уменьшает значение на единицу, затем возвращает значение$a–Пост-декремент. Возвращает текущее значение, после чего уменьшает его на единицу.

<?php
$a = $b = $c = $d = 2; 

echo $a++, "<br>";
echo ++$b, "<br>";
echo $c--, "<br>";
echo --$d, "<br>";
?>

Отображение в браузере:

2
3
2
1

Приоритет операторов PHP


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

Эта таблица показывает операторы по убыванию приоритета (операторы с одним приоритетом выполняются слева на право):

new
[
! ~ ++ — (int) (float) (string) (array) (object)
@
* / %
+ – .
< >
< <= > >=
&
^
|
&&
||
? :
= += -= *= /= .= %= &= |= ^= <= >=
print
and
xor
or
,

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

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


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

Любая строка, которая заключена в обратные апострофы — ` считаются как команда ОС. Например:

<?php
$d = `dir d:\\`;
echo $d;
?>

Как результат вы получите список директорий диска D.

Строковые операторы PHP


PHP имеет два строковых оператора.

Первый – оператор конкатенации ., который объединяет две строки в одну.

Второй – конкатенирующий оператор присвоения .=, добавляет к строке нужное значение. Например:

<?php
$d = "Hello";
$f = $d." world";   // Теперь $f = "Hello world"

echo $f; 

echo "<br/>"; 

$f .= " ! ! !";   // Теперь $f = "Hello world ! ! !"

echo $f; 
?>

Отображение в браузере:

Hello world
Hello world ! ! !

Часть 2

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


Во всех высокоуровневых языках программирования есть оператор if, в PHP синтаксис этого оператора такой:

if (exp) 
   statement

exp (выражение) – логическое выражение, которое может быть истиной (TRUE) или ложью (FALSE).
Например, выражение 100 > 1 это истина (TRUE).

statement (инструкция) выполняется тогда, когда exp — истина, и не выполняется когда exp ложь!

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

<?php
$speed = 80;

if ($speed > 60)
    echo "Превышение скорости !";
?>

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

<?php
$speed = 80;

if ($speed > 60) 
{    // Начало
  echo "Превышение скорости! <br>";
  echo "Пожалуйста, уменьшите скорость!";
}    // Конец
?>

Отображение в браузере:

Превышение скорости!
Пожалуйста, уменьшите скорость!

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


При изучении условного оператора if мы использовали знак > в условии, так это и есть один из операторов сравнения в PHP! Все операторы сравнения которые есть в PHP указанные в таблице:

==РавенствоИстина, если $a равно $b
===ИдентичностьИстина, если $a равно $b, и они одного и того же типа
!=НеравенствоИстина, если $a не равно $b
<>НеравенствоИстина, если $a не равно $b
!==НеидентичностьИстина, если $a не равно $b, или они не одного типа
<МеньшеИстина, если $a меньше $b
>БольшеИстина, если $a больше $b
<=Меньше или равноИстина, если $a меньше или равно $b
>=Больше или равноИстина, если $a больше или равно $b

Стоит обратить внимание, что оператор сравнения записывается как ==, а не просто =.

<?php
$speed = 45;

if ($speed <= 60)
    echo "Скорость в пределах нормы";
?>

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


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

<?php
$speed = 40;

if ($speed > 35 && $speed < 55) {
    echo "Скорость в пределах нормы";
}
?>

Полный список логических операторов представленный в таблице:

andЛогическое “И”Истина, если истинно $a и $b
&&Логическое “И”Истина, если истинно $a и $b
orЛогическое “ИЛИ”Истина, если истинно $a или $b
||Логическое “ИЛИ”Истина, если истинно $a или $b
xorЛогическое “Исключающее ИЛИ”Истина, если истинно $a или $b, но не оба одновременно
!Логическое “НЕ”Истина, если $a ложь

Как вы видите, в таблице присутствуют два оператора “И” и “ИЛИ”. Это потому, что оператор && или || имеет больший приоритет от “И” и “ИЛИ”.

Оператор ELSE в PHP


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

if(exp) 
    statement1
else 
    statement2

Пример:

<?php
$speed = 50;

if ($speed > 60)
    echo "Превышение скорости !";
else 
    echo "Скорость в пределах нормы" 
?>

В этом случае будет выведено сообщение “Скорость в пределах нормы”.

Оператор ELSEIF в PHP


Оператор if имеет еще одно расширение, это оператор elseif, он используется для последовательной проверки условий. Синтаксис:

if (exp) 
    statement1
elseif (exp2) 
    statement2

Также можно записывать так:

if (exp) 
    statement1
else if (exp2) 
    statement2

Пример:

<?php
$speed = 50;

if ($speed < 30)
    echo "Скорость в пределах нормы";

elseif ($speed == 30)
    echo "Ваша скорость 30 км/час";

elseif ($speed == 40)
    echo "Ваша скорость 40 км/час";

elseif ($speed == 50)
    echo "Ваша скорость 50 км/час";

elseif ($speed == 60)
    echo "Ваша скорость 60 км/час";

else 
    echo "Превышение скорости !";
?>

Также, такой кусок кода можно записать и так:

<?php
$speed = 50;

if ($speed < 30)
    echo "Скорость в пределах нормы";

elseif ($speed >= 30 && $speed <= 60)
    echo "Ваша скорость {$speed} км/час";

else 
    echo "Превышение скорости !";
?>

В этом случае будет выведено сообщение “Ваша скорость 50 км/час”. А если бы не одно условие не подошло бы , то сработал бы оператор else и мы увидели “Превышение скорости !”.

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


Тернарный оператор работает почти также как и оператор if, но при использовании тернарного оператора, мы вместо ключевых слов пишем ? и :.

Синтаксис:

$var = condition ? exp1 : exp2;

Если условие выполняется, то переменной $var присваивается результат вычисления exp1, иначе exp2.

Пример:

<?php
$speed = 55;

echo ($speed <= 60) ? "Скорость в пределах нормы" : "Превышение скорости !"; 
?>

В результате мы увидим строку – “Скорость в пределах нормы”.

PHP 5.3

Начиная с версии PHP 5.3 можно использовать тернарный оператор в таком варианте:

<?php
$var = $value ?: "Другое значение";

// еквивалентно
$var = $value ? $value : "Другое значение";
?>

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

PHP 7

Также, уже начиная с версии PHP 7.0 можно использовать тернарный оператор в таком варианте:

<?php
$var = $value ?? "Другое значение";

// еквивалентно
$var = isset($value) ? $value : "Другое значение";
?>

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

Оператор SWITCH в PHP


Иногда даже использование конструкции операторов if .. elseif несколько утомляет.
Чтобы исправить эту ситуацию есть оператор switch. Синтаксис:

switch (exp) 
{
    case condition1:
    exp1;
    break;
    
    case condition2:
    exp2;
    break;
    
    case condition3:
    exp3;
    break;
    
    default:
    exp4;
    break;
}

Сначала записывается ключевое слово switch, после которого в скобках записывается некоторое выражение.
Далее, после слова case нужно перечислить возможные варианты значений, если значение истина, то выполняется группа операторов, которые записаны до оператора break. Если ни одно условие не подходит, то выполняется оператор default (если оператор default не записывать, то при не выполнении никаких других условий ничего не произойдет).

<?php
$speed = 55;

switch($speed)
{
    case 30 : 
        echo "Ваша скорость 30 км/час";
    break;
    
    case 58 : 
        echo "Ваша скорость 50 км/час";
    break;
    
    case 70 : 
        echo "Превышение скорости !";
    break;
    
    default : 
        echo "Скорость в пределах нормы";
    break;

}
?>

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

<?php
$speed = 55;

switch($speed)
{
    case 30 : 
    case 58 : 
        echo "Скорость в пределах нормы";
    break;
    
    case 70 : 
        echo "Превышение скорости !";
    break;
    
    default : 
        echo "Скорость в пределах нормы";
    break;

}
?>

В результате мы увидим — “Скорость в пределах нормы”.

Часть 3

Цикл FOR в PHP


Основной задачей компьютеров есть обработка большого количества информации, которое у человека заняло бы очень много времени.
Для обработки таких задач компьютер использует циклы. Первым циклом которым мы начнем главу будет цикл for. Ниже приведен его синтаксис:

for (exp1; exp2; exp3) statement

В выражение exp1 вставляют начальное значение для счетчика цикла — переменная, которая считает количество раз выполнения тела цикла.
exp2 — задает условие повторения цикла. Цикл будет выполнятся пока это условие будет true.
exp3 — выполняется каждый раз после выполенения тела цикла. Обычно, оно используется для изменения (увеличение или уменьшение) счетчика.
Пример:

<?php
for ($i = 0; $i < 10; $i++) 
{
   echo "Вывод строки. 10 раз <br>"; 
} 
?>

Отображение в браузере:

Вывод строки. 10 раз
Вывод строки. 10 раз
Вывод строки. 10 раз
Вывод строки. 10 раз
Вывод строки. 10 раз
Вывод строки. 10 раз
Вывод строки. 10 раз
Вывод строки. 10 раз
Вывод строки. 10 раз
Вывод строки. 10 раз

Циклы WHILE в PHP


Цикл WHILE, вместо использования счетчика цикла проверяет некоторое условие до того, пока это условие Истина (TRUE). Синтаксис:

while (exp) statement

Условие проверяется перед выполнением цикла, если оно будет Ложным в начале, то цикл не выполнится ни разу!
В теле цикла должна быть переменная которая будет оказывать влияние на условие, чтобы предотвратить зацикливание. Пример:

<?php
$counter = 0; 
while ($counter < 5) 
{
   echo "Эта строка выведется 5 раз <br>"; 
   $counter++;
}
?>

Отображение в браузере:

Эта строка выведется 5 раз
Эта строка выведется 5 раз
Эта строка выведется 5 раз
Эта строка выведется 5 раз
Эта строка выведется 5 раз

После вывода строки, переменная $counter увеличивается на 1, и когда она станет больше или равна 5, то цикл завершится.

Цикл DO… WHILE в PHP


Главное отличие цикла DO … WHILE от WHILE в том, что первый сначала выполняется тело цикла, а потом проверяет условие. Т.е., если условие сразу Ложь, то цикл выполнится один раз.
Синтаксис

do
   statement 
while (condition)

Использование цикла DO… WHILE:

<?php
$counter = 6; 

do
{
   echo "Эта строка выведется 1 раз <br>"; 
   $counter++;
}
while ($counter < 5);

?>

В браузере мы получим такое:

Отображение в браузере:

Эта строка выведется 1 раз

Так как условие цикла сразу Ложь (6 > 5), то цикл выполнился всего один раз, так как сначала выполняется тело цикла, а потом проверяется условие цикла.

Цикл FOREACH в PHP


Цикл FOREACH представлен для упрощения работы с массивами (массивы будет рассмотрены дальше). Массивы состоят из отдельных элементов, цикл FOREACH предназначен для перебора этих элементов без счетчика.
Синтаксис:

foreach (array as $value) statement 
foreach (array as $key => $value) statement

Использование цикла:

<?php
$array = array ("Apple", "Limon", "Chery", "Oranges"); 

foreach ($array as $value)
{
   echo "Вы выбрали фрукт - $value <br>"; 
}
?>

Отображение в браузере:

Вы выбрали фрукт - Apple 
Вы выбрали фрукт - Limon 
Вы выбрали фрукт - Chery 
Вы выбрали фрукт - Oranges


Поділитись