Arttırım ve Eksiltim İşleçleri

PHP, C tarzı önceden ve sonradan arttırım ve eksiltim işleçlerini destekler.

Bilginize: Arttırım ve eksiltim işleçleri sadece sayıları ve dizeleri etkiler. Diziler, nesneler ve özkaynaklar etkilenmez. NULL değerini eksiltmenin bir etkisi yoktur fakat arttırmanın sonucu 1'dir.

Arttırım ve Eksiltim İşleçleri
Örnek İsim Etkisi
++$a Önceden arttırım $a bir arttırıldıktan sonra döndürülür.
$a++ Sonradan arttırım $a döndürüldükten sonra değeri bir arttırılır.
--$a Önceden eksiltim $a bir eksiltildikten sonra döndürülür.
$a-- Sonradan eksiltim $a döndürüldükten sonra değeri bir eksiltilir.

Basit bir betik örneği:

<?php
echo "<h3>Sonradan arttırım</h3>\n";
$a 5;
echo 
"5 olmalı: " $a++ . "<br />\n";
echo 
"6 olmalı: " $a "<br />\n";

echo 
"<h3>Önceden arttırım</h3>\n";
$a 5;
echo 
"6 olmalı: " . ++$a "<br />\n";
echo 
"6 olmalı: " $a "<br />\n";

echo 
"<h3>Sonradan eksiltim</h3>\n";
$a 5;
echo 
"5 olmalı: " $a-- . "<br />\n";
echo 
"4 olmalı: " $a "<br />\n";

echo 
"<h3>Önceden eksiltim</h3>\n";
$a 5;
echo 
"4 olmalı: " . --$a "<br />\n";
echo 
"4 olmalı: " $a "<br />\n";
?>

PHP, karakter değişkenleri üzerinde çalışırken C'nin değil Perl'in yöntemlerini izler. Örneğin, PHP ve Perl'de $a = 'Z'; $a++; ifadesi $a içinde 'AA' değerini döndürürken, C'de a = 'Z'; a++; ifadesi a içinde'[' döndürür. 'Z' için ASCII değer 90, '[' için 91'dir. Karakterlerin arttırılabileceğini fakat azaltılamayacağını ve sadece ASCII harflerin ve rakamların (a-z ve A-Z, 0-9) desteklendiğine dikkat ediniz. Diğer karakterler üzerinde arttırım ve eksiltim etkisiz olup özgün değer değişmeden döndürürlür.

Örnek 1 - Karakter değişkenleri üzerinde aritmetik işlemler

<?php
echo '== Harfler ==' PHP_EOL;
$i 'W';
for (
$n=0$n<6$n++) {
    echo ++
$s PHP_EOL;
}
// Rakam karakterleri farklı davranır
echo '== Rakamlar ==' 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;
}
?>

Yukarıdaki örneğin çıktısı:

== Harfler ==
X
Y
Z
AA
AB
AC
== Rakamlar ==
A9
B0
B1
B2
B3
B4
A09
A10
A11
A12
A13
A14

Mantıksal değerlere arttırım ve eksiltim uygulamanın bir etkisi olmaz.