PHP поддерживает операторы пре- и постинкремента и декремента в стиле C.

Примечание . Операторы увеличения/уменьшения влияют только на числа и строки. Массивы, объекты, логические значения и ресурсы не затрагиваются. Уменьшение nullзначений также не имеет никакого эффекта, но их увеличение приводит к 1.

ПримерИмяЭффект
++$аПредварительное увеличениеУвеличивает $a на единицу, затем возвращает $a .
$а++ПостинкрементВозвращает $a , затем увеличивает $a на единицу.
--$аПредекрементУменьшает $a на единицу, затем возвращает $a .
$а--ПостдекрементВозвращает $a , затем уменьшает $a на единицу.

Вот простой пример скрипта:

<?php
echo "<h3>Postincrement</h3>";
$a = 5;
echo "Should be 5: " . $a++ . "<br />\n";
echo "Should be 6: " . $a . "<br />\n";

echo "<h3>Preincrement</h3>";
$a = 5;
echo "Should be 6: " . ++$a . "<br />\n";
echo "Should be 6: " . $a . "<br />\n";

echo "<h3>Postdecrement</h3>";
$a = 5;
echo "Should be 5: " . $a-- . "<br />\n";
echo "Should be 4: " . $a . "<br />\n";

echo "<h3>Predecrement</h3>";
$a = 5;
echo "Should be 4: " . --$a . "<br />\n";
echo "Should be 4: " . $a . "<br />\n";
?>

PHP следует соглашению Perl при работе с арифметическими операциями над символьными переменными, а не в C. Например, в PHP и Perl $a = 'Z'; $a++;превращается $aв 'AA', а в C a = 'Z'; a++;превращается aв '[' (значение ASCII равно 'Z'90, значение ASCII равно '['91). Обратите внимание, что символьные переменные могут увеличиваться, но не уменьшаться, и даже в этом случае поддерживаются только простые алфавиты и цифры ASCII (az, AZ и 0-9). Увеличение/уменьшение других символьных переменных не влияет, исходная строка остается неизменной.

Пример #1 Арифметические операции над символьными переменными

<?php
echo '== Alphabets ==' . PHP_EOL;
$s = 'W';
for ($n=0; $n<6; $n++) {
    echo ++$s . PHP_EOL;
}
// Digit characters behave differently
echo '== Digits ==' . PHP_EOL;
$d = 'A8';
for ($n=0; $n<6; $n++) {
    echo ++$d . PHP_EOL;
}
$d = 'A08';
for ($n=0; $n<6; $n++) {
    echo ++$d . PHP_EOL;
}
?>

Приведенный выше пример выведет:

== Персонажи ==
Икс
Д
Z
АА
АБ
переменный ток
== Цифры ==
А9
B0
Б1
Би 2
Б3
В4
А09
А10
А11
А12
А13
А14

Увеличение или уменьшение логических значений не имеет никакого эффекта.