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

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

WBOY
WBOYOriginal
2016-05-25 16:45:251709browse

版本一:

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

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

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

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

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

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

版本五:

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

前两个循环很容易理解,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'


本文地址:

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

Statement:
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