登录
首页 >  文章 >  php教程

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

时间:2024-10-29 15:18:48 294浏览 收藏

今天golang学习网给大家带来了《PHP 循环中 \'Z\' 递增为何变为 \'AA\' 而不是 \'AZ\'?》,其中涉及到的知识点包括等等,无论你是小白还是老手,都适合看一看哦~有好的建议也欢迎大家在评论留言,若是看完有所收获,也希望大家能多多点赞支持呀!一起加油学习~

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

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

问题:

<?php
$string = '';
$j = 'z';
for ($i = 'a'; $i <= $j; $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\'?》的详细内容,更多关于的资料请关注golang学习网公众号!

相关阅读
更多>
最新阅读
更多>
课程推荐
更多>