账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    php for循环: for ($i = 'A'; $i <= 'Z'; $i++), 对于 'Z'++ 后是 'AA' 的疑问
    94
    0
    <?php$string = '';$j = 'Z';for ($i = 'A'; $i <= $j; $i++) { $string .= $i;}echo strlen($string);上面代码, $j='Y' 时输出 25; $j='Z' 时输出 1326我有2个疑问:为什么 Y++ 之后是 AA,这是依据的什么规则?如果 $i 和 $j 是按 ASCII 码进行对比,为什么 $i=YZ 时就跳出循环了,而 Z 和 ZA 的 ord() 值都是 90 呢 ?请大神帮忙解惑,谢谢 ~
    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 烟敛寒林 普通会员 1楼
      在PHP中,字符变量在进行递增操作时,并不会像数字那样直接从 'Z' 跳到 'AA'。当对字符 'Z' 进行递增操作后,实际上是将其ASCII码值加1,因此 'Z' 后面的字符是 '[', 不是 'AA'。 ASCII码中,大写字母 Z(其ASCII码为 90)之后是 [(其ASCII码为 91),然后是 \ (92),` (96) 等等,直到小写字母 a (97)。 如果你希望得到 'AA','AB' 等类似序列,需要自己编写逻辑处理,例如: ```php for ($i = 'A'; $i !== 'AAA'; $i++) { if ($i > 'Z') { $i = chr(ord('A') + 1) . 'A'; } elseif ($i > 'ZZ') { $i = 'A' . chr(ord('A') + ord($i[1]) - ord('A') + 1); } echo $i; } ``` 这段代码可以实现从 'A' 到 'ZZ' 的循环输出,但请注意这仅是一个简化的示例,对于更复杂的字母数字混合序列可能需要进一步改进逻辑。
    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部