首页 > 技术文章 > php for循环a到z

wjm956 2017-09-20 13:58 原文

首先先介绍2个php内置函数

ord(string):函数返回字符串的首个字符的 ASCII 值。//string:必需。要从中获得 ASCII 值的字符串。

chr(ascll): 函数从指定的 ASCII 值返回字符。//必需。ASCII 值。

第一个函数返回的是以整数的ASCLL值。第二个函数返回的是以整数ASCLL值的字符。

ASCII 值可被指定为十进制值、八进制值或十六进制值。八进制值被定义为带前置 0,而十六进制值被定义为带前置 0x。

1 for($i=ord('a');$i<=ord('z');$i++){
2            echo chr($i).'<br/>';
3 }

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

还有一种“奇怪现象”就是不用这两个php内置函数的话,直接去for循环到z的时候,后面就会出现aa ab的现象

1 for($i='a';$i<='z';$i++){
2             echo $i.'<br/>';
3 }

他就会出现这样的循环奇怪现象。在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'....依次下去。

推荐阅读