На самом деле, к этому моменту вы уже знакомы практически со всеми операциями над переменными и выражениями в PHP. Ниже приводится их полный список с краткими комментариями, заменяя выражения-операнды буквами a
и b
.
Арифметические операции PHP
a + b
— сложение;a — b
— вычитание;a * b
— умножение;a / b
— деление;a % b
— остаток от деленияa
наb
;
Операция деления /
возвращает целое число (то есть, результат деления нацело), если оба выражения a
и b
— целого типа (или же строки, выглядящие как целые числа), в противном случае результат будет дробным. Операция вычисления остатка от деления %
работает только с целыми числами, так что применение ее к дробным может привести к, мягко говоря, нежелательному результату.
Пример:
<?php
echo 5+4 ."<br>"; //результат 9
echo "5"+"4"."<br>"; //результат 9
echo "5"+4 ."<br>"; //результат 9
echo "5 рублей"+4 ."<br>"; //результат 9
echo "Доход 5"+4 ."<br>"; //результат 4
echo "Привет"+4 ."<br>"; //результат 4
echo "Привет"+"всем!" ."<br>";//результат 0
$x=12;
$y=4;
echo $x/$y ."<br>"; //результат 3
echo $x%$y ."<br>"; //результат 0
echo $x++ ."<br>";/*результат: значение переменной $x становится равным 13, но выражение возвращает 12*/
echo ++$x; //результат 14
?>
Примечание. В JavaScript в выражениях с оператором сложения +
данных строкового и числового типов, последние приводятся к строковому, а не числовому типу. Поэтому выражение "Привет"+4
даст "Привет4"
, а не 4
как в РНР. С другой стороны, в РНР выражение "5"+4
вернет 9
, а в JavaScript 54
.
Строковые операции PHP
a.b
— слияние строкa
иb
;a[n]
— символ строки в позицииn
.
Собственно, других строковых операций и нет — все остальное, что можно сделать со строками в PHP, выполняют стандартные функции.
Пример:
<?php
echo "Саша". "Маша"; //результат "СашаМаша"
echo "<br>";
$a="Привет";
$b="всем!";
echo $a. " ".$b; /*результат "Привет всем!". Здесь склеиваются три строки: значение переменной $a, строка с пробелом " " и значение переменной $b*/
?>
Операции присваивания PHP
Основным из этой группы операций является оператор присваивания =
. Еще раз напомню, что он не обозначает "равенство", а говорит интерпретатору, что значение правого выражения должно быть присвоено переменной слева.
Оператор | Пример | Эквивалентное выражение |
---|---|---|
+= | 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
$x="Привет";
$x.=" всем!";
echo $x; //результат "Привет всем!"
$x=5; $x*=7;
echo "<br>";
echo $x; //результат 35
?>
Операции инкремента и декремента
Для операций $a+=1
и $b-=1
в связи с их чрезвычайной распространенностью в PHP ввели специальные операторы.
$a++
— увеличение переменной$a
на 1;$a--
— уменьшение переменной$a
на 1.
Эти операторы увеличивают или уменьшают значение переменной, а в выражении возвращают значение переменной $a
до изменения.
Пример:
<?php
$a=10;
$b=$a++;
echo "a=$a, b=$b"; //результат a=11, b=10
echo "<br>";
$a=10;
$b=--$a;
echo "a=$a, b=$b"; //результат a=9, b=9
?>
Операторы инкремента и декремента на практике применяются очень часто. Например, они встречаются практически в любом цикле for
.
Битовые операции PHP
Эти операции предназначены для работы (установки/снятия/проверки) групп битов в целой переменной. Биты целого числа — это не что иное, как отдельные разряды того же самого числа, записанного в двоичной системе счисления. Например, в двоичной системе число 12 будет выглядеть как 1100, а 2 — как 10, так что выражение 12|2 вернет нам число 14 (1110 в двоичной записи). Если переменная не целая, то она вначале округляется, а уж затем к ней применяются перечисленные ниже операторы.
a & b
— результат — число, у которого установлены только те биты, которые установлены и у a, и у b одновременно.a | b
— результат — число, у которого установлены только те биты, которые установлены либо в a, либо в b (либо одновременно).~ a
— результат, у которого на месте единиц в a стоят нули, и наоборот.a << b
— результат — число, полученное поразрядным сдвигом a на b битов влево.a >> b
— аналогично, только вправо.
Операции сравнения PHP
Это в своем роде уникальные операции, потому что независимо от типов своих аргументов они всегда возвращают одно из двух: false
или true
. Операции сравнения позволяют сравнивать два значения между собой и, если условие выполнено, возвращают true
, а если нет — false
.
a = = b
— истина, если a равно b.a != b
— истина, если a не равно b.a < b
— истина, если a меньше b.a > b
— аналогично больше.a <= b
— истина, если a меньше либо равно b.a >= b
— аналогично больше либо равно.
Следует отметить, что в PHP сравнивать можно только скалярные (то есть строки и числа) переменные. Для массивов и объектов этого делать нельзя. Их даже нельзя сравнивать на равенство (при помощи оператора = =
), но при выполнении такой операции PHP не выдает предупреждения. Так что удивившись как-то раз, почему это два совершенно разных массива при сравнении их с помощью = =
оказываются вдруг одинаковыми, вспомните, что перед сравнением оба операнда преобразуются в слово array
, которое потом и сравнивается.
Пример:
<?php
echo "5.3"==5.3; //возвращает true
echo "<br>";
echo "5.3"===5.3; //возвращает false
echo "<br>;
echo "1"==true; //возвращает true
echo "<br>";
echo 1==true; //возвращает true
echo "<br>";
echo "1"=="true"; //возвращает false
echo "<br>";
echo 1=="true"; //возвращает false
echo "<br>";
echo "0"=="false"; //возвращает false
echo "<br>";
echo "0"==false; //возвращает true
echo "<br>";
echo 0=="false"; //возвращает true
echo "<br>";
echo 0==false; //возвращает true
echo "<br>";
echo null==null; //возвращает true
echo "<br>";
echo null===null; //возвращает true
echo "<br>";
echo "abcd" > "abcd";//возвращает false
echo "<br>";
echo "abc" < "abcd"; //возвращает true
echo "<br>";
echo "235ab" < "abcdghrz"; //возвращает true
?>
Операции эквивалентности PHP
В PHP версии 4 появился новый оператор сравнения — тройной знак равенства = = =
, или оператор проверки на эквивалентность. Как мы уже замечали ранее, PHP довольно терпимо относится к тому, что строки неявно преобразуются в числа, и наоборот. Он не только сравнивает два выражения, но также их типы. Возможности оператора эквивалентности идут далеко за пределы сравнения "обычных" переменных. С его помощью можно сравнивать также и массивы, объекты и т. д. Это бывает иногда очень удобно. Разумеется, для оператора = = =
существует и его антипод — оператор != = =
(он состоит из целых четырех символов!).
Логические операции
Эти операции предназначены исключительно для работы с логическими выражениями и также возвращают false или true.
! a
— истина, если a ложно, и наоборот.a && b
— истина, если истинны и a и b.a || b
— истина, если истинны или a или b, или они оба.
Следует заметить, что вычисление логических выражений, содержащих такие операции, идет всегда слева направо, при этом, если результат уже очевиден (например, false&&
что-то всегда дает false
), то вычисления обрываются, даже если в выражении присутствуют вызовы функций. Например, в операторе
$logic = 0&&(time()>100);
стандартная функция time()
никогда не будет вызвана.
Будьте осторожны с логическими операциями — не забывайте про удваивание символа. Обратите внимание, что, например, |
и ||
— два совершенно разных оператора, один из которых может потенциально возвращать любое число, а второй — только false
и true
.
Комментарии(0)
Для добавления комментариев надо войти в систему и авторизоватьсяКомментирование статей доступно только для зарегистрированных пользователей:Зарегистрироваться