今天看到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
本文地址:https://www.stayed.cn/item/5807
转载请注明出处。
本站部分内容来源于网络,如侵犯到您的权益,请 联系我