С понятието „инкрементиране“ се обозначава увеличаването на стойността на дадена променлива с една единица. Оператора за инкрементиране се записва чрез два плюса: ++

С понятието „декрементиране“ се обозначава намаляването на стойността на дадена променлива с една единица. Оператора за декрементиране се записва чрез два минуса: –

Съществуват два вида оператори за инкрементиране и декрементиране – префиксни и постфиксни (за краткост пре- и пост-):

++$promenliva префиксно инкрементиране
–$promenliva префиксно декрементиране
$promenliva++ постфиксно инкрементиране
$promenliva– постфиксно декрементиране

Т.е. пре- операторите се различават от пост- операторите по мястото, където се поставят знаците ++ и –.

Действието и на двата оператора за инкрементиране (пре- и пост-) се изразява в добавяне на единица към стойността на променливата, към която са прикрепени.

Действието и на двата оператора за декрементиране (пре- и пост-) се изразява в отнемане на една единица от стойността на променливата, към която са прикрепени.

Разликата между пре- и пост- операторите е, че при пре- операторите първо се извършва аритметичната операция (увеличаване или намаляване на стойността на променливата с единица) и след това се връща резултата, а при пост- операторите първо се връща резултат (стойността на променливата), а едва след това стойността се увеличава или намалява с единица.

Пример за пре-инкрементиране:

<?php

$prom1 = 100;

$prom1 = ++$prom1;

echo „Резултата от пре-инкрементирането е $prom1“;

// Връща резултат 101

?>

Горния код ще върне резултат 101, тъй като чрез оператора за префиксно инкрементиране добавихме единица към стойността на променливата $prom1.

Същия резултат ще получим и от кода:

<?php

$prom1 = 100;

++$prom1;

echo „Резултата от пре-инкрементирането е $prom1“;

// Връща резултат 101

?>

Абсолютно същия резултат като от горния код ще получим ако използваме в същия контекст и оператора за пост-инкрементиране:

<?php

$prom1 = 100;

$prom1++;

echo „Резултата от пост-инкрементирането е $prom1“;

// Връща резултат 101

?>

Ако обаче заместим пре-инкрементирането от първия пример с пост-инкрементирането от горния пример, тогава резултата няма да е 101, а 100:

<?php

$prom1 = 100;

$prom1 = $prom1++;

echo „Резултата от пост-инкрементирането е $prom1“;

// Връща резултат 100

?>

Това е така, защото при пре-инкрементиране първо се увеличава стойността на променливата с единица и след това се връща резултата, а при пост-инкрементиране първо се връща резултат (стойността на променливата), а едва след това стойността се увеличава с единица. За да може да получим резултата 101 в горния контекст трябва да напишем:

<?php

$prom1 = 100;

$prom1++;

$prom1 = $prom1++;

echo „Резултата от пост-инкрементирането е $prom1“;

// Връща резултат 101

?>

Операторите за декрементиране работят по аналогичен начин.

Операторите за инкрементиране и декрементиране не оказват влияние върху булеви стойности (истина и неистина) и не извеждат никакъв резултат.

Стойностите на променливи съставени от букви могат да бъдат инкрементирани, но не могат да бъдат декрементирани.

Стойността null не може да бъде декрементирана, но може да бъде инкрементирана, при което се връща резултат 1.