Арифметические операторы
Сложение, вычитание, умножение и деление - это хорошо известные концепции, которые применимы к любому числовому значению, включая целые и вещественные числа. При использовании с другими типами, например со строками, PHP сначала преобразует их в числовые значения, а затем выполняет операцию. Результирующий тип арифметического выражения может быть целым или вещественным числом. PHP определяет тип результата на основании того, требуется ли для описания полученного результата десятичная точка. Совсем по-другому происходит в языках с жестко заданными типами данных (язык C), которые определяют тип результата только на базе типов операндов. В табл. 2.6 сведены все арифметические операторы, а в листинге 2.9 приведен пример их использования.
Переменные, операторы и выражения
Деление по модулю возвращает целый остаток операции деления, а поэтому определяется только для целых чисел. При использовании со значениями других типов он сначала преобразует их в целые значения и только после этого выполняет саму операцию. Результат деления по модулю всегда имеет целый тип.
Оператор + имеет другой смысл при работе с массивами (подробнее об этом - в главе 5, "Массивы").

Листинг 2.9. Использование арифметических операторов

<?php
//напечатать 6 (а не 8!)
print(2 + 2 * 2);
print("<br>n"); //напечатать 2.5 print(5 / 2); print("<br>n"); // напечатать 1 print(5 % 2); print("<br>n"); //напечатать 3 5
print(" 7 little Indians" * 5); print("<br>n");
?>

Операторы инкремента и декремента являются сокращенным представлением операции прибавления или вычитания из переменной значения 1. Они не могут использоваться ни с чем другим, кроме переменной, поэтому выражение вида 5++ является неправильным. Эти операторы работают с целыми и вещественными числами. Операторы инкремента также работают со строками: PHP позволяет преобразовывать последний символ строки в символ, следующий по кодовой таблице. Операция декремента со строками не работает, хотя это и не является ошибкой.
Как видно в табл. 2.6, существуют две различные формы записи этих операторов. Во многих ситуациях, когда эти операторы используются просто для увеличения или уменьшения значения переменной, оба типа записи ведут себя одинаково. Однако при использовании инкрементного выражения в качестве аргумента функции или другого оператора различие в написании влияет и на значение выражения.
Значение инкрементного выражения всегда является значением переменной. Расположение оператора инкремента только свидетельствует о том, когда производится оценка выражения: до или после выполнения операции инкремента. Если оператор размещен справа, PHP сначала использует значение переменной, а затем ин-крементирует ее. Это называется постинкрементом (операцией с последующим приращением операнда). При размещении оператора слева PHP сначала инкрементирует значение, а потом использует вновь полученное значение. Это называется предын-крементом (операцией с предварительным приращением операнда). Эта концепция продемонстрирована в листинге 2.10. 

I Листинг 2.10. Использование арифметических операторов
<?php
$VisitorsToday = 1;
//напечатать 1
print($VisitorsToday++);
//значение VisitorsToday теперь равно 2
print("<br>n");
// напечатать 3
print(++$VisitorsToday);
print("<br>n");
//напечатать 4.14
$pi = 3.14;
$pi++; print($pi); print("<br>n"); // напечатать PHP
$php = "PHP";
$php++; print($php); print("<br>n"); // напечатать PHP
$php = "PHP";
$php--;
print($php);
print("<br>n");
?>