为什么这段代码不简单地打印字母 A 到 Z?

2023-12-01

<?php
for ($i = 'a'; $i <= 'z'; $i++)
    echo "$i\n";

此代码片段提供以下输出(换行符被空格替换):

abcdefghijklmnopqrstuvwxyzaaabacadaeafagahaiajakalamanaoapaqarasatauavawaxayazbabbbcbdbebfbgbhbibjbkblbmbnbobpbqbrbsbtbubv bw bx by bz ca cb cc cd ce cf cg ch ci cj ck cl cm cn co cp cq cr cs ct cu cv cw cx cy cz da db dc dd de df dg dh di dj dk dl dm dn do dp dq dr ds dt du dv dw dx dy dz ea eb ec ed ee ef eg eh ei ej ek el em en eo ep eq er es et eu ev ew ex...到 yz


来自docs:

PHP 在处理字符变量而不是 C 的算术运算时遵循 Perl 的约定。

例如,在 Perl 中'Z'+1变成'AA',而在 C'Z'+1变成'[' ( ord('Z') == 90, ord('[') == 91 ).

请注意,字符变量可以递增,但不能递减,即使如此,也仅支持纯 ASCII 字符(a-z 和 A-Z)。

来自评论:-
还应该指出的是<=是字典顺序比较,所以'z'+1 ≤ 'z'。 (自从'z'+1 = 'aa' ≤ 'z'. But 'za' ≤ 'z'是第一次比较为假。)中断时$i == 'z'例如,会起作用。

示例在这里.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么这段代码不简单地打印字母 A 到 Z? 的相关文章

随机推荐