Арифметические, строковые, присваивания и другие операции PHP

На самом деле, к этому моменту вы уже знакомы практически со всеми операциями над переменными и выражениями в PHP. Ниже приводится их полный список с краткими комментариями, заменяя выражения-операнды буквами a и b.

Арифметические операции PHP

Операция деления / возвращает целое число (то есть, результат деления нацело), если оба выражения 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

Собственно, других строковых операций и нет — все остальное, что можно сделать со строками в 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 до изменения.

Пример.

<?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 в двоичной записи). Если переменная не целая, то она вначале округляется, а уж затем к ней применяются перечисленные ниже операторы.

Операции сравнения PHP

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

Следует отметить, что в 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.

Следует заметить, что вычисление логических выражений, содержащих такие операции, идет всегда слева направо, при этом, если результат уже очевиден (например, false&&что-то всегда дает false), то вычисления обрываются, даже если в выражении присутствуют вызовы функций. Например, в операторе

$logic = 0&&(time()>100);

стандартная функция time() никогда не будет вызвана.

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




  • Другие |
назадвверхвперед
Rambler's Top100