PHP 循环中 \'Z\' 递增为何变为 \'AA\' 而不是 \'AZ\'?
问题:
php
$string = '';
$j = 'z';
for ($i = 'a'; $i
$string .= $i;
}
echo strlen($string);
?>
- 为什么 y++ 之后是 aa,而不是 az?
- 为何 $i 和 $j 按 ascii 码比较时,$i=yz 时就跳出循环?
回答:
1. 'z' 递增后为 'aa' 的依据
php 在处理字符变量的算术运算时遵循 perl 的惯例。在 perl 中,'z'+1 变成 'aa'。因此,在 php 中,'z'+1 也变成 'aa'。
2. php 的字符串比较
php 的字符串比较不是纯粹的 ascii 码比较。对于 'zz' 和 'z' 的比较,php 会比较它们的第一个字符。由于两者相等,php 会比较它们的长度。'zz' 的长度更长,因此 'zz' 被认为比 'z' 大,这就解释了为什么循环在 $i=yz 时跳出。
以上就是PHP 循环中 \'Z\' 递增为何变为 \'AA\' 而不是 \'AZ\'?的详细内容,更多请关注其它相关文章!