Оператори
PHP Manual

Инкрементиращи/декрементиращи оператори

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

Забележка: Операторите за инкрементиране (нарастване) и декрементиране (намаляване) не влияят на булеви стойности. Декрементирането на NULL стойности също няма ефект, но инкрементирането им дава резултат 1.

Инкрементиращи/декрементиращи оператори
Пример Наименование Ефект
++$a Предварително инкрементиране Увеличава $a с едно, след което връща $a.
$a++ Последващо инкрементиране Връща $a, след което увеличава $a с едно.
--$a Предварително декрементиране Намалява $a с едно, след което връща $a.
$a-- Последващо декрементиране Връща $a, след което намалява $a с едно.

Ето прост примерен скрипт:

<?php
echo "<h3>Последващо инкрементиране</h3>";
$a 5;
echo 
"Би трябвало да бъде 5: " $a++ . "<br />\n";
echo 
"Би трябвало да бъде 6: " $a "<br />\n";

echo 
"<h3>Предварително инкрементиране</h3>";
$a 5;
echo 
"Би трябвало да бъде 6: " . ++$a "<br />\n";
echo 
"Би трябвало да бъде 6: " $a "<br />\n";

echo 
"<h3>Последващо декрементиране</h3>";
$a 5;
echo 
"Би трябвало да бъде 5: " $a-- . "<br />\n";
echo 
"Би трябвало да бъде 4: " $a "<br />\n";

echo 
"<h3>Предварително декрементиране</h3>";
$a 5;
echo 
"Би трябвало да бъде 4: " . --$a "<br />\n";
echo 
"Би трябвало да бъде 4: " $a "<br />\n";
?>

PHP следва конвенцията на Perl, когато работи с аритметически операции върху символни променливи, а не тази на C. Например, в Perl 'Z'+1 се превръща в 'AA', докато в C 'Z'+1 се превръща в '[' ( ord('Z') == 90, ord('[') == 91 ). Забележете, че символните променливи могат да бъдат инкрементирани, но не и декрементирани и дори тогава се поддържат единствено знаци в чист ASCII (a-z и A-Z).

Example #1 Аритетмически операции върху символни променливи

<?php
$i 
'W';
for (
$n=0$n<6$n++) {
     echo ++
$i "\n";
}
?>

Примерът по-горе ще изведе:

X
Y
Z
AA
AB
AC

Инкрементирането или декрементирането на булеви стойности няма ефект.


Оператори
PHP Manual