Операторы PHP
Операторы в PHP позволяют нам выполнять задачи с переменными и значениями, такими как присваивание, умножение, сложение, вычитание и объединение. Операторы принимают форму символов (например, +
и -
) и комбинаций символов (например, ++
и +=
).
Операторы в PHP работают с операндами, которые определяют переменные и значения, которые должны использоваться в конкретной операции. Число и расположение этих операндов по отношению к операторам (т.е. до и / или после оператора) зависит от типа рассматриваемого оператора.
Арифметические операторы PHP
Арифметические операторы используются для выполнения простых математических операций, таких как сложение, вычитание, умножение и т.д. Ниже приводится список арифметических операторов вместе с синтаксисом и операциями, которые предоставляет нам PHP:
Оператор | название | Синтаксис | Операция |
---|---|---|---|
+ | Сложение | $x + $y | Сложение операндов |
- | Вычитание | $x - $y | Вычитание операндов |
* | Умножение | $x * $y | Произведение операндов |
/ | Деление | $x / $y | Частное операндов |
** | Возведение в степень | $x ** $y | $x возведен в степень $y |
% | Модуль | $x % $y | Остаток от деления операндов |
Арифметические операторы работают с двумя операндами, один слева, а другой справа от оператора. Например:
Пример
Попробуй сам »<?php
$x = 29;
$y = 4;
echo ($x + $y), "<br>"; // выведет 33
echo($x - $y), "<br>"; // выведет 25
echo($x * $y), "<br>"; // выведет 116
echo($x / $y), "<br>"; // выведет 7.25
echo($x % $y), "<br>"; // выведет 1
?>
Логические или реляционные операторы
Логические операторы в основном они используются для работы с условными операторами и выражениями. Условные утверждения основаны на условиях. Кроме того, условие может быть выполнено или не может быть выполнено, поэтому результат условного оператора может быть истинным (true)
или ложным (false)
. Вот логические операторы вместе с синтаксисом и операциями, которые предоставляет нам PHP:
Оператор | название | Синтаксис | Операция | Пример |
---|---|---|---|---|
and | Логическое И | $x and $y | TRUE, если оба операнда TRUE, иначе FALSE | Пример » |
or | Логическое ИЛИ | $x or $y | TRUE, если любой из операндов TRUE, иначе FALSE | Пример » |
xor | Логический XOR | $x xor $y | TRUE, если один из операндов TRUE, и FALSE, если оба TRUE | Пример » |
&& | Логическое И | $x && $y | TRUE, если оба операнда TRUE, иначе FALSE | Пример » |
|| | Логическое ИЛИ | $x || $y | TRUE, если любой из операндов TRUE, иначе FALSE | Пример » |
! | Логическое НЕ | !$x | TRUE, если $x FALSE | Пример » |
Первый шаг к пониманию того, как работают логические операторы — это составить предложение, а не сразу смотреть на пример сценария. Предположим, нам нужно проверить некоторые аспекты двух переменных с именами $x и $y. Наше предложение может выглядеть так:
Если $x меньше 25 И $y больше 45, то PHP должен отобразить некоторое сообщение.
Здесь логический оператор — это часть предложения «И». Если бы мы выразили это на языке PHP, мы бы использовали описанные ранее операторы сравнения вместе с логическим оператором &&
:
if (($x < 25) && ($y > 45)) echo 'Наше выражение истинно';
Точно так же, составим следующее предложение:
Если $x меньше 25 ИЛИ $y больше 45, отобразить сообщение.
Затем мы заменим «ИЛИ» на эквивалент PHP ||
:
if (($x < 25) || ($y > 45)) echo 'Наше выражение истинно';
Следующий полезный логический оператор — это исключающее ИЛИ оператор (XOR)
. Оператор XOR
возвращает истину (true), если только одно из выражений оказывается истинным (true), но не оба. Например:
Если ИЛИ $x меньше 25 ИЛИ $y больше 45, отобразить сообщение
Мы представляем исключающее 'или' ключевым словом xor
:
if (($x <25) xor ($y > 45)) echo 'Наше выражение истинно';
И последний логический оператор — это оператор НЕ, который просто инвертирует результат выражения. Символ !
представляет собой оператор НЕ и может использоваться следующим образом:
(10 > 1) // Возвращает True !(10 > 1) // возвращает false, потому что мы инвертировали результат с помощью логического НЕ
Операторы сравнения PHP
Операторы сравнения предоставляют возможность сравнивать одно значение с другим и возвращать истинный (true)
или ложный (false)
результат в зависимости от статуса совпадения. Например, вы можете использовать оператор сравнения, чтобы проверить, соответствует ли значение переменной определенному числу или идентична ли одна строка другой. PHP предоставляет широкий выбор операторов сравнения практически для любых задач сравнения.
Операторы сравнения используются с двумя операндами, один слева и один справа от оператора. В следующей таблице представлены операторы сравнения PHP и приведены краткие описания и примеры:
Оператор | название | Синтаксис | Операция |
---|---|---|---|
== | Равно | $x == $y | Возвращает True, если оба операнда равны |
!= | Не равно | $x != $y | Возвращает True, если оба операнда не равны |
<> | Не равно | $x <> $y | Возвращает True, если оба операнда не равны |
=== | Тождественно равно | $x === $y | Возвращает True, если оба операнда равны и относятся к одному типу. |
!== | Тождественно не равно | $x == $y | Возвращает True, если оба операнда не равны и относятся к разным типам. |
< | Меньше | $x < $y | Возвращает True, если $x меньше $y |
> | Больше | $x > $y | Возвращает True, если $x больше $y |
<= | Меньше или равно | $x <= $y | Возвращает True, если $x меньше или равно $y |
>= | Больше или равно | $x >= $y | Возвращает True, если $x больше или равно $y |
<=> | Космический корабль | $x <=> $y | Возвращает целое число, меньшее, равное или большее нуля, в зависимости от того, меньше ли $ x, равно или больше $ y. Представлено в PHP 7. |
Примечание: При попытке вывести результат операции сравнения операндов на экран, значение true
отобразится в окне браузера как 1. Значение false
соответствует числу 0 и не отображается на экран. Чтобы вывести на экран результат в виде true
или false
используйте функцию var_dump()
.
При сравнивании целого числа со строкой, строка будет преобразована к числу. В случае, если вы сравниваете две числовые строки, они сравниваются как целые числа:
Пример
Попробуй сам »<?php
$a = 80;
$b = 50;
$c = "80";
var_dump($a == $c); //выведет bool(true)
var_dump($a != $b); //выведет bool(true)
var_dump($a <> $b); //выведет bool(true)
var_dump($a === $c); //выведет bool(false)
var_dump($a !== $c); //выведет bool(true)
var_dump($a < $b); //выведетbool(fale)
var_dump($a > $b); //выведет bool(true)
var_dump($a <= $b); //выведет bool(false)
var_dump($a >= $b); //выведет bool(true)
?>
Оператор spaceship (космический корабль)
Этот оператор предназначен для сравнения двух выражений. Он возвращает -1, 0 или 1 если $a, соответственно, меньше, равно или больше чем $b. Правила, используемые комбинированным оператором сравнения, такие же, как и используемые в настоящее время операторами сравнения PHP: <, <=, ==, >= и >
. Сравнение производится в соответствии с правилами сравнения типов PHP.
Пример
Попробуй сам »<?php
$a = 5;
$b = 10;
echo ($a <=> $b); // возвращает -1, потому что $a меньше $b
echo "<br>";
$a = 10;
$b = 10;
echo ($a <=> $b); // возвращает 0, потому что значения равны
echo "<br>";
$a = 15;
$b = 10;
echo ($a <=> $b); // возвращает 1, потому что $a больше $b
?>
Условные или тернарные операторы
Эти операторы используются для сравнения двух значений и одновременного получения любого из результатов, в зависимости от того, является ли результат true
или false
. Они также используются в качестве сокращенного обозначения для оператора true
или if… else
, который мы изучим на следующем уроке.
Синтаксис:
Здесь условие будет либо истинным, либо ложным. Если условие истинно, то переменной $var будет присвоено значение1, в противном случае ей будет присвоено значение2.
Оператор | название | Синтаксис | Операция |
---|---|---|---|
?: | тернарный | $x = expr1 ? expr2 : expr3 | Возвращает значение $x. Значение $x равно expr2, если expr1 = TRUE. Значение $x равно expr3, если expr1 = FALSE. |
?? | Нулевое слияние | $x = expr1 ?? expr2 | Возвращает значение $x. Значение $x равно expr1, если expr1 существует, и не равно NULL. Pначение $x равно expr2, tсли expr1 не существует или имеет значение NULL. Представлено в PHP 7 |
Пример
Попробуй сам »<?php
$x = -12;
echo ($x > 0) ? 'Число положительное' : 'Число отрицательное';
//выведет Число отрицательное
?>
Результат выполнения кода:
Пример
Попробуй сам »<?php
// переменная $user принимает значение $_GET['user']
// и "anonymous", если она не существует
echo $user = $_GET["user"] ?? "anonymous";
echo("<br>");
// переменная $color принимает значение "green", если $color не существует или имеет значение null
echo $color = $color ?? "green";
?>
Результат выполнения кода:
green
Операторы присваивания
Оператор присваивания используется для присвоения значения переменной и представлен знаком равенства (=)
. Оператор присваивания также можно комбинировать с арифметическими операторами для объединения присваивания с математической операцией (например, для умножения одного значения на другое и присвоения результата переменной), а также для выполнения конкатенации строк.
В следующей таблице перечислены семь операторов присваивания, доступных в PHP, вместе с описаниями и примерами их использования:
Оператор | название | Синтаксис | Операция |
---|---|---|---|
= | Назначить | $x = $y | Операнд слева получает значение операнда справа |
+= | Добавить, затем присвоить результат | $x += $y | Простое сложение аналогично $x = $x + $y |
-= | Вычесть, затем присвоить результат | $x -= $y | Простое вычитание аналогично $x = $x - $y |
*= | Умножить и присвоить результат | $x *= $y | Простой продукт такой же, как $x = $x * $y |
/= | Разделить, затем присвоить результат (частное) | $x /= $y | Простое деление аналогично $x = $x / $y |
%= | Разделить, затем присвоить результат (остаток) | $x %= $y | Простое деление и получение остатка $x = $x % $y |
.= | Конкатенация-операнд | $x .= $y | Устанавливает значение левого операнда в строку, содержащую конкатенацию его значения, добавленного со строкой в правом операнде $x = $x .= $y |
Пример
Попробуй сам »<?php
$y = 75;
echo $y; // выведет 75
$y = 100;
$y += 200;
echo $y; // выведет 300
$y = 70;
$y -= 10;
echo $y; // выведет 60
$y = 30;
$y *= 20;
echo $y; // выведет 600
$y = 100;
$y /= 5;
echo $y; // выведет 20
$y = 10;
$y %= 6;
echo $y; // выведет 4
$sampleString = "Мой цвет";
$sampleString .= "синий";// выведет "Мой цвет синий"
?>
Операторы массивов PHP
Операторы массивов PHP используются для сравнения массивов.
В следующей таблице приведён список операторов, работающих с массивами PHP:
Оператор | название | Синтаксис | Операция |
---|---|---|---|
+ | Объединение | $x + $y | Объединение массива $x и массива $y. |
== | Равно | $x == $y | TRUE в случае, если $x и $y содержат одни и те же элементы. |
!= | Не равно | $x != $y | TRUE если массив $x не равен массиву $y. |
=== | Тождественно равно | $x === $y | TRUE в случае, если $x и $y содержат одни и те же элементы в том же самом порядке. |
!== | Тождественно не равно | $x !== $y | TRUE если массив $x не равен тождественно массиву $y. |
<> | Не равно | $x <> $y | TRUE если массив $x не равен массиву $y. |
Пример
Попробуй сам »<?php
$x = array("a" => "red", "b" => "green");
$y = array("c" => "blue", "d" => "yellow");
print_r($x + $y); // Array ( [a] => red [b] => green [c] => blue [d] => yellow )
$x = array("a" => "red", "b" => "green");
$y = array("c" => "blue", "d" => "yellow");
var_dump($x == $y); // bool(false)
$x = array("a" => "red", "b" => "green");
$y = array("c" => "blue", "d" => "yellow");
var_dump($x === $y); // bool(false)
$x = array("a" => "red", "b" => "green");
$y = array("c" => "blue", "d" => "yellow");
var_dump($x != $y); // bool(true)
$x = array("a" => "red", "b" => "green");
$y = array("c" => "blue", "d" => "yellow");
var_dump($x <> $y); // bool(true)
$x = array("a" => "red", "b" => "green");
$y = array("c" => "blue", "d" => "yellow");
var_dump($x !== $y); // bool(true)
?>
Операторы увеличения и уменьшения PHP
При программировании нередко возникает необходимость увеличивать или уменьшать значение, хранящееся в переменной, на 1.
Для этого можно использовать быстрый способ — операторы увеличения и уменьшения PHP. Они состоят из операторов ++
(для увеличения) и --
(для уменьшения) в сочетании с операндом (именем переменной, к которой должно применяться изменение).
Эти операторы можно использовать двумя способами: до и после операнда. Предварительный режим выполняет приращение (Pre-Increment) или декремент (Pre-Decrement) перед выполнением остальной части выражения. Например, вам нужно увеличить значение переменной до того, как оно будет присвоено другой переменной или использовано в вычислениях. В пост- режиме увеличение (Post-Increment) или уменьшение (Post-Decrement) выполняется после того, как выражение было выполнено. В этом случае вы можете уменьшить значение после того, как оно было назначено или использовано в вычислении.
Использование pre или post зависит от того, появляется ли оператор до (для pre) или после (для post) имени переменной в выражении. Например, --$x или $y++.
В следующей таблице представлены различные формы операторов инкремента и декремента (до и после), а также примеры, которые показывают, как эквивалентная задача должна быть выполнена без операторов инкремента и декремента:
Оператор | Название | Синтаксис | Операция |
---|---|---|---|
++ | Pre-Increment | ++$x | Сначала увеличивает $x на единицу, затем возвращает $x |
-- | Pre-Decrement | --$x | Сначала уменьшает $x на единицу, затем возвращает $x |
++ | Post-Increment | $x++ | Сначала возвращает $x, затем увеличивает его на единицу |
— | Post-Decrement | $x– | Сначала возвращает $x, затем уменьшает его на единицу |
Пример
Попробуй сам »<?php
$x = 10;
echo ++$x; // выведет 11
$x = 10;
echo $x++; // выведет 10
$x = 10;
echo --$x; // выведет 9
$x = 10;
echo $x--; // выведет 10
?>
Строковые операторы PHP
Оператор конкатенации строк PHP используется для объединения значений при создании строки. Оператор конкатенации представлен точкой (.)
и может использоваться для построения строки из других строк, переменных, не содержащих строки (например, чисел), и даже констант.
В PHP есть два оператора, специально разработанные для строк:
Оператор | Название | Синтаксис | Операция |
---|---|---|---|
. | Конкатенация | $x . $y | Объединенные $x и $y |
.= | Конкатенация и присвоение | $x .= $y | Сначала объединяет, затем присваивает значение, так же, как $x = $x . $Y |
Пример
Попробуй сам »<?php
$txt1 = "Привет";
$txt2 = " мир!";
echo $txt1 . $txt2; //Выведет Привет мир!
$txt1 = "Привет";
$txt2 = " мир!";
$txt1 .= $txt2;
echo $txt1; //Выведет Привет мир!
?>
Результат выполнения кода:
Привет мир!