PHP字符串增加运算分析
一个学生问了一个问题。复制代码代码如下所示:
< PHP
为($我= a;$i < Z;我+ +){
回声$ i;
}
输出是什么
输出是:
abcdefghijklmnopqrstuvwxyzaaabacadaeafagahaiajakalamanaoapaqaras的…
什么原因
事实上,这很简单,PHP的手册也解释过,但恐怕很多人不仔细阅读手册在一章和一节。
PHP是Perl的公约时处理的字符变量而不是C。例如Perl中的Z + 1圈为AA的算术运算,而Z+1变成C({ ORD(Z)= 90,曼特尔({)= = 91)。注意,字符变量可以递增而不是递减甚至只有普通的ASCII字符(A-Z和a-z)的支持。
当处理字符变量的算术运算,PHP是Perl的习惯而不是C,例如,Perl中的Z+ 1AA,将在C,Z + 1将{(ORD(Z)= 90,曼特尔({)= = 91)。注意,字符变量只能增加,不能减少,只支持纯字母(a-z、A-Z)。
也就是说,如果:
复制代码代码如下所示:
$name =laruence ;
+ + $名称; / /将laruencf
而:
复制代码代码如下所示:
$name =laruence ;
美元的名字; / /没有效果,或laruence
所以,这个原因是,当$ i = z,++ i是AA,字符串比较。
AA、BB、XX路YZ小于等于Z.So。