PHP 支持 C 风格的前/后递增与递减运算符。
运算符 | 名称 | 描述 |
---|---|---|
++$x | 前递增 | $x 加一递增,然后返回 $x |
$x++ | 后递增 | 返回 $x,然后 $x 加一递增 |
--$x | 前递减 | $x 减一递减,然后返回 $x |
$x-- | 后递减 | 返回 $x,然后 $x 减一递减 |
下例展示了使用不同递增/递减运算符的不同结果:
- <?php
- $x=10;
- echo ++$x; // 输出 11
- $y=10;
- echo $y++; // 输出 10
- $z=5;
- echo --$z; // 输出 4
- $i=5;
- echo $i--; // 输出 5
- ?>
扩展阅读:
Note: 递增/递减运算符不影响布尔值。递减 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" ;
- ?>
在处理字符变量的算数运算时,PHP 沿袭了 Perl 的习惯,而非 C 的。例如,在 Perl 中 $a = 'Z'; $a++; 将把 $a变成'AA',而在 C 中,a = 'Z'; a++; 将把 a 变成 '['('Z'的 ASCII 值是 90,'[' 的 ASCII 值是 91)。注意字符变量只能递增,不能递减,并且只支持纯字母(a-z 和 A-Z)。递增/递减其他字符变量则无效,原字符串没有变化。
Example #1 涉及字符变量的算数运算
- <?php
- $i = 'W' ;
- for ( $n = 0 ; $n < 6 ; $n ++) {
- echo ++ $i . "/n" ;
- }
- ?>
以上例程会输出:
- X
- Y
- Z
- AA
- AB
- AC
递增或递减布尔值没有效果。