Home  >  Q&A  >  body text

Why doesn't this code simply print out the letters A to Z?


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

This code snippet provides the following output (newlines replaced with spaces):

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...to yz


P粉239089443P粉239089443246 days ago493

reply all(2)I'll reply

  • P粉555682718

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

    Because once 'z' is reached (which is a valid result in the range, $i increments it to the next value in the sequence), the next value will be 'aa'; alphabetically, 'aa' is < 'z',因此永远不会满足比较

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

    reply
    0
  • P粉308089080

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

    From Documentation:

    From comments: -
    Also note that <= is a lexicographic comparison, so 'z' 1 ≤ 'z'. (Because 'z' 1 = 'aa' ≤ 'z'. But 'za' ≤ 'z' is false for the first comparison.) For example, $ i == 'z' will do.

    Example.

    reply
    0
  • Cancelreply