## 遞增/遞減運算符
PHP支持C風格的前/后遞增與遞減運算符
> **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
echo?'==?Alphabets?=='?.?PHP_EOL;
$s?=?'W';
for?($n=0;?$n<6;?$n++)?{
????echo?++$s?.?PHP_EOL;
}
//?Digit?characters?behave?differently
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;
}
?>
```
以上例程會輸出:
~~~
== Alphabets ==
X
Y
Z
AA
AB
AC
== Digits ==
A9
B0
B1
B2
B3
B4
A09
A10
A11
A12
A13
A14
~~~
遞增或遞減布爾值沒有效果。
- 序言
- 簡介
- PHP是什么?
- PHP能做什么?
- 基本語法
- 類型
- boolean(布爾型)
- integer(整型)
- float(浮點型)
- string(字符串)
- array(數組)
- object(對象)
- callable(可調用)
- resource(資源)
- NULL(無類型)
- 偽類型
- 類型轉換的判別
- 變量
- 基礎
- 預定義變量
- 變量范圍
- 可變變量
- 來自PHP之外的變量
- 常量
- 語法
- 魔術常量
- 表達式
- 運算符
- 運算符優先級
- 算術運算符
- 賦值運算符
- 位運算符
- 比較運算符
- 錯誤控制運算符
- 執行運算符
- 遞增/遞減運算符
- 邏輯運算符
- 字符串運算符
- 數組運算符
- 類型運算符
- 流程控制
- if
- else
- elseif/else if
- 流程控制的替代語法
- while
- do-whille
- for
- foreach
- break
- continue
- switch
- declare
- return
- require
- include
- require_once
- include_once
- goto
- 函數
- 用戶自定義函數
- 函數的參數
- 返回值
- 可變函數
- 內部 (內置)函數
- 匿名函數
- 類與對象
- 簡介
- 基本概念
- 屬性
- 類的自動加載
- 構造函數
- 訪問控制(可見性)