今天看到php手冊上有這麼一段話:
“在處理字符變量的算數運算時,PHP 沿襲了 Perl 的習慣,而非 C 的。例如,在 Perl 中 $a = 'Z'; $a++; 將把 $a 變成'AA',而在 C 中,a = 'Z'; a++; 將把 a 變成 '['('Z' 的 ASCII 值是 90,'[' 的 ASCII 值是 91)。注意字符變量只能遞增,不能遞減,並且只支持純字母(a-z 和 A-Z)。遞增/遞減其他字符變量則無效,原字符串沒有變化。”
也就是說:
復制代碼 代碼如下:
for($i = 'A'; $i <= 'Z'; $i++) {
echo $i;
//if( $i == 'ZZZ') die();
}
結果是:ABCDEFGHIJKLMNOPQRSTUVWXYZAAABACADAEAFAGAHAIAJAKALAMANAOAPAQARASATAUA…………
還有字符串變量不能遞減:
復制代碼 代碼如下:
$a = 'Z';
--$a;
echo $a; // Z
這也說明了$a++或++$a,不能要 $a = $a + 1;來解釋
復制代碼 代碼如下:
$a = $b = 'Z';
$a = $a + 1;
echo $a; //1
++$b;
echo $b; //AA