【问题标题】:The char 'z' and FOR loop [duplicate]char 'z' 和 FOR 循环
【发布时间】:2012-08-30 00:16:09
【问题描述】:

可能重复:
PHP - Erroneous Alphabet Loop

PHP 代码:

for ($i = 'v'; $i <= 'y'; $i++)
        echo $i . ' ';

将打印:

v w x y

但是:

for ($i = 'v'; $i <= 'z'; $i++)
        echo $i . ' ';

将打印:

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 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 ey ez fa fb fc fd fe ff fg fh fi fj fk fl fm fn fo fp fq fr fs ft fu fv fw fx fy fz ga gb gc gd ge gf gg gh gi gj gk gl gm gn go gp gq gr gs gt gu gv gw gx gy gz ha hb hc hd he hf hg hh hi hj hk hl hm hn ho hp hq hr hs ht hu hv hw hx hy hz ia ib ic id ie if ig ih ii ij ik il im in io ip iq ir is it iu iv iw ix iy iz ja jb jc jd je jf jg jh ji jj jk jl jm jn jo jp jq jr js jt ju jv jw jx jy jz ka kb kc kd ke kf kg kh ki kj kk kl km kn ko kp kq kr ks kt ku kv kw kx ky kz la lb lc ld le lf lg lh li lj lk ll lm ln lo lp lq lr ls lt lu lv lw lx ly lz ma mb mc md me mf mg mh mi mj mk ml mm mn mo mp mq mr ms mt mu mv mw mx my mz na nb nc nd ne nf ng nh ni nj nk nl nm nn no np nq nr ns nt nu nv nw nx ny nz oa ob oc od oe of og oh oi oj ok ol om on oo op oq or os ot ou ov ow ox oy oz pa pb pc pd pe pf pg ph pi pj pk pl pm pn po pp pq pr ps pt pu pv pw px py pz qa qb qc qd qe qf qg qh qi qj qk ql qm qn qo qp qq qr qs qt qu qv qw qx qy qz ra rb rc rd re rf rg rh ri rj rk rl rm rn ro rp rq rr rs rt ru rv rw rx ry rz sa sb sc sd se sf sg sh si sj sk sl sm sn so sp sq sr ss st su sv sw sx sy sz ta tb tc td te tf tg th ti tj tk tl tm tn to tp tq tr ts tt tu tv tw tx ty tz ua ub uc ud ue uf ug uh ui uj uk ul um un uo up uq ur us ut uu uv uw ux uy uz va vb vc vd ve vf vg vh vi vj vk vl vm vn vo vp vq vr vs vt vu vv vw vx vy vz wa wb wc wd we wf wg wh wi wj wk wl wm wn wo wp wq wr ws wt wu wv ww wx wy wz xa xb xc xd xe xf xg xh xi xj xk xl xm xn xo xp xq xr xs xt xu xv xw xx xy xz ya yb yc yd ye yf yg yh yi yj yk yl ym yn yo yp yq yr ys yt yu yv yw yx yy yz

为什么不直接打印v w x y z

【问题讨论】:

  • 非常有趣。这是我可能永远不会使用的语言功能之一,因为它的不可预测性和糟糕的文档。我相信字符递增规则旨在模仿 Perl,所以我想知道 Perl 是否也这样做。

标签: php


【解决方案1】:

因为aa 小于z。这与字母的字母顺序有关。

查看实际操作:http://codepad.org/6sUkkKU5

它在yz 处停止,之后zz 对于$i &lt;= 'z'; 的计算结果为假

【讨论】:

  • @MichaelBerkowski 因为$i &lt;= 'z'; 是真的。
  • 我现在看到了...在我的第一次阅读中,我认为 z 在输出中 missingv w x y aa ab ac... 一样
【解决方案2】:

如果这不是理论;你可以使用范围

foreach (range('v', 'z') as $letter) {
    echo $letter;
}

【讨论】:

    【解决方案3】:

    因为你使用了&lt;="z"。当 $i == "z"$i++ 被调用时,php 将其从 "z" 更改为 "aa" 和 "aa" &lt;= "z",因此循环继续。

    我希望您只是在寻找“为什么”的答案,而不是如何编写循环。

    反正发现很有趣。

    【讨论】:

      【解决方案4】:

      因为increment operator 以一种方式定义,而string comparison 以另一种方式定义。

      【讨论】:

        猜你喜欢
        • 2012-06-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-07-30
        • 2014-03-15
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多