PHP, C tarzı önceden ve sonradan arttırım ve eksiltim işleçlerini destekler.
Bilginize: Arttırım ve eksiltim işleçleri mantıksal değerler üzerinde etkisizdir.
NULL
değerini eksiltmenin bir etkisi yoktur fakat arttırmanın sonucu 1'dir.
Ö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, Perl'de 'Z'+1 ifadesi 'AA' değerini döndürürken, C'de '[' döner ( ord('Z') == 90, ord('[') == 91 ). Karakterlerin arttırılabileceğini fakat azaltılamayacağını ve sadece ASCII harflerin (a-z ve A-Z) desteklendiğine dikkat ediniz.
Örnek 1 - Karakter değişkenleri üzerinde aritmetik işlemler
<?php
$i = 'W';
for ($n=0; $n<6; $n++) {
echo ++$i . "\n";
}
?>
Yukarıdaki örneğin çıktısı:
X Y Z AA AB AC
Mantıksal değerlere arttırım ve eksiltim uygulamanın bir etkisi olmaz.