Home > php教程 > php手册 > php实现a到z及其中的”奇怪现象”

php实现a到z及其中的”奇怪现象”

WBOY
Release: 2016-05-25 16:45:25
Original
1737 people have browsed it

版本一:

for($i=ord(&#39;a&#39;); $i<ord(&#39;z&#39;); $i++) { 
    echo chr($i); 
}
Copy after login

版本二(与第一版类似使用ascii):

for($i=0; $i<26; $i++) { 
    echo chr($i+97); 
}
Copy after login

版本三:echo implode('', range('a', 'z'));

版本四(高智商坑爹版):

for($i=&#39;a&#39;; $i!=&#39;aa&#39;; $i++) { 
    echo $i; 
}
Copy after login

版本五:

for($i=&#39;a&#39;; strlen($i)<2; $i++) { 
    echo $i; 
}
Copy after login

前两个循环很容易理解,a到z每个字母的ascii码值是递增不变的,所以这两个方法就是通过ascii值去做循环计算,用到了php内置的ord()和chr()函数.

第三个方法使用php内置的range()函数生成一个从a到z递增的数组,步长为1,之后用implode函数将数组合并成字符串.

后两个方法就是本篇标题中所要讲的"奇怪现象".

从理论上来讲,咱们用for($i='a'; $i

如果在for循环中每次输出一个换行再观察的话就会发现一个规则,a-z,下一次输出了aa、ab、ac...az,然后是ba、bb、bc...bz....也就是php在给z加一后自动“进位"了,php一个奇特的26进制,当"当前位"的z加1后会向它前面的一位上增加1,然后当前位变为a,'z'++ => 'aa','az'=>'ba','zz'=>'aaa'....

注意的两点:1.这种规律不能用于判断,如'z'


本文地址:

转载随意,但请附上文章地址:-)

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Recommendations
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template