ресурс для начинающих веб-разработчиков
комплексные веб-услуги по созданию сайтов

Справочный материал по основным языкам программирования и верстки сайтов.

Готовая методика создания простых и сложных динамичных сайтов, с использованием PHP и MySQL.

Использование веб-редактора Adobe Dreamweaver в разработке сайтов.

Использование графических редакторов Adobe Flash, Adobe Photoshop, Adobe Fireworks в подготовке веб-графики.

Разработка веб-сайтов под "ключ".

Разработка отдельных фрагментов сайтов, консультации по вопросам верстки веб-страниц и веб-программирования.

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

Операции PHP

На самом деле, к этому моменту вы уже знакомы практически со всеми операциями над переменными и выражениями в 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.