一尘不染

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

php

此代码段给出以下输出(换行符由空格代替):

abcdefghijklmnopqrstu vwxyz aa ab ac ad ae af ag ah ai aj ak al am ao a a a
ap aq ar as at au av aw ax ay az ab ba bb bc bd be bf bg bh bi bj bk bb bb
bb bu bp bq bs 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 cw cy cz cz da db dc dd d df dg dh di dj dk dl d dm dn
do dp dq dr ds dt du dv dw dx dy dz ea eb ec ed ef e e e e e ek e e e e e e
e e e e e e e e e e E E E V E V V Ev E …


阅读 286

收藏
2020-05-29

共1个答案

一尘不染

文档

当处理字符变量而非C的算术运算时,PHP遵循Perl的约定。

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

请注意,字符变量可以递增但不能递减,即使如此,仅支持纯ASCII字符(az和AZ)。

还应该注意的<=是,按字典顺序比较'z'+1 ≤ 'z'。(自从开始'z'+1 = 'aa' ≤ 'z'。但是,这'za' ≤ 'z'是第一次比较不正确。)$i == 'z'例如,中断何时可以工作。

2020-05-29