遞增/遞減運算符

PHP 支持 C 風格的前/后遞增與遞減運算符。

注意: 遞增/遞減運算符不影響布爾值。遞減 null 值也沒有效果,但是遞增 null 的結果是 1

遞增/遞減運算符
例子 名稱 效果
++$a 前加 $a 的值加一,然后返回 $a。
$a++ 后加 返回 $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";
?>

在處理字符變量的算數(shù)運算時,PHP 沿襲了 Perl 的習慣,而非 C 的。例如,在 Perl 中 $a = 'Z'; $a++; 將把 $a 變成'AA',而在 C 中,a = 'Z'; a++; 將把 a 變成 '[''Z' 的 ASCII 值是 90,'[' 的 ASCII 值是 91)。注意字符變量只能遞增,不能遞減,并且只支持純字母(a-z 和 A-Z)。遞增/遞減其他字符變量則無效,原字符串沒有變化。

示例 #1 涉及字符變量的算數(shù)運算

<?php
echo '== Alphabets ==' PHP_EOL;
$s 'W';
for (
$n=0$n<6$n++) {
    echo ++
$s PHP_EOL;
}
// 數(shù)字字符的不同行為
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;
}
?>

以上例程會輸出:

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

遞增或遞減布爾值沒有效果。