PHP 循环中 \'Z\' 递增为何变为 \'AA\' 而不是 \'AZ\'?

php 循环中 \'z\' 递增为何变为 \'aa\' 而不是 \'az\'?

php for 循环中 'z' 的递增疑问

问题:

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\'?的详细内容,更多请关注其它相关文章!