PHP回声char变量错误
我有这样的代码PHP回声char变量错误
<?php
for($i="a";$i<="z";$i++) {
echo $i;
}
?>
我有一个问题,如果
$i <="y"
它仍然是正确的,回声
a->y
但如果 $i<="z"
像上面结果将是:
abcdefghijklmnopqrstuvwxyzaaabacadaeafagahaiajakalamanaoapaqarasatauavawaxayazbabbbcbdbebfbgbhbibjbkblbmbnbobpbqbrbsbtbubvbwbxbybzcacbcccdcecfcgchcicjckclcmcncocpcqcrcsctcucvcwcxcyczdadbdcdddedfdgdhdidjdkdldmdndodpdqdrdsdtdudvdwdxdydzeaebecedeeefegeheiejekelemeneoepeqereseteuevewexeyezfafbfcfdfefffgfhfifjfkflfmfnfofpfqfrfsftfufvfwfxfyfzgagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgugvgwgxgygzhahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshthuhvhwhxhyhziaibicidieifigihiiijikiliminioipiqirisitiuiviwixiyizjajbjcjdjejfjgjhjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzkakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzlalblcldlelflglhliljlklllmlnlolplqlrlsltlulvlwlxlylzmambmcmdmemfmgmhmimjmkmlmmmnmompmqmrmsmtmumvmwmxmymznanbncndnenfngnhninjnknlnmnnnonpnqnrnsntnunvnwnxnynzoaobocodoeofogohoiojokolomonooopoqorosotouovowoxoyozpapbpcpdpepfpgphpipjpkplpmpnpopppqprpsptpupvpwpxpypzqaqbqcqdqeqfqgqhqiqjqkql qmqnqoqpqqqrqsqtquqvqwqxqyqzrarbrcrdrerfrgrhrirjrkrlrmrnrorprqrrrsrtrurvrwrxryrzsasbscsdsesfsgshsisjskslsmsnsospsqsrssstsusvswsxsysztatbtctdtetftgthtitjtktltmtntotptqtrtstttutvtwtxtytzuaubucudueufuguhuiujukulumunuoupuqurusutuuuvuwuxuyuzvavbvcvdvevfvgvhvivjvkvlvmvnvovpvqvrvsvtvuvvvwvxvyvzwawbwcwdwewfwgwhwiwjwkwlwmwnwowpwqwrwswtwuwvwwwxwywzxaxbxcxdxexfxgxhxixjxkxlxmxnxoxpxqxrxsxtxuxvxwxxxyxzyaybycydyeyfygyhyiyjykylymynyoypyqyrysytyuyvywyxyyyz
我不知道为什么,有人可以帮我吗?
看看什么PHP documentation说,关于增加字符:
PHP如下Perl的约定在处理字符变量而不是C的算术运算 。例如,在PHP和Perl中$ a = 'Z'; $ A ++;将$ a变成'AA',而在C a ='Z'中;一个++;将a变成 '['('Z'的ASCII值是90,'['的ASCII值是91)。请注意, 字符变量可以递增但不递减,即使如此 也只支持纯ASCII字符(a-z和A-Z)。 递增/递减其他字符变量不起作用, 原始字符串不变。
如果你要打印AZ那么PHP的range功能非常有用
http://php.net/manual/en/function.range.php
foreach (range('a', 'z') as $letter) {
echo $letter;
}
Tks男子,我明白了 – 2013-03-04 13:45:53
你也可以试试这个:
for($i="a"; $i != "aa"; $i++)
{
echo $i;
}
我不知道为什么会这样,为什么你会做这样的..但是如果你只是想一个数组(?)与所有字符a-z,请尝试:
$ myArray = range('a','z');
"aa" <= "z"
返回true
由于词法比较(这不是你期望的比较),所以你的循环一直持续到"za"
。
正如在其他的答案中提到,使用range('a', 'z')
或for($i="a"; $i != "aa"; $i++)
在for循环中,从第2次增量工作第一,然后在最后一所以在这里查询条件时,$ I =“Z”,($ I < =“z”)检查当时($ i ++)当它增加它的值时,$ i变成“z”到“aa”,再次小于“z”,因此循环保持继续到“yz”。
哇,它就像excel a-z,然后aa-az ... – Bakudan 2013-03-04 13:30:41
$ i是一个字符串,i ++可以将它们连接起来 – acutesoftware 2013-03-04 13:30:59
它是什么,你真的希望它打印出来?字母表? – 2013-03-04 13:41:39