首页  >  问答  >  正文

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


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

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

a b c def g h i j k l m no p q r s t u v w x y z aa ab ac ad ae af ag ah ai aj ak al am an ao ap aq ar as at au av aw ax ay az ba bb bc bd be bf bg bh bi bj bk bl bm bn bo bp bq br bs bt bu bv 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 dze 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


P粉239089443P粉239089443295 天前541

全部回复(2)我来回复

  • P粉555682718

    P粉5556827182024-01-22 11:11:19

    因为一旦达到“z”(这是范围内的有效结果,$i++ 将其递增到序列中的下一个值),下一个值将是“aa”;按字母顺序,'aa' 是 < 'z',因此永远不会满足比较

    for ($i = 'a'; $i != 'aa'; $i++) 
        echo "$i\n";

    回复
    0
  • P粉308089080

    P粉3080890802024-01-22 09:22:34

    来自文档

    来自评论:-
    还需要注意的是,<=是字典顺序比较,因此'z'+1 ≤ 'z'。 (因为 'z'+1 = 'aa' ≤ 'z'。但是 'za' ≤ 'z' 是第一次比较为 false。)例如,$i == 'z' 就可以。

    示例

    回复
    0
  • 取消回复