Her*_*tei -2 php loops for-loop
我试图从打印出字母'A'来'Z'使用for循环.我能做的是:
foreach (range('A', 'Z') as $char) {
echo $char . "\n";
}
Run Code Online (Sandbox Code Playgroud)
但我想要实现的是:
for($i = 'A'; $i <= 'Z'; $i++){
echo $i . "<br>";
}
Run Code Online (Sandbox Code Playgroud)
上面的方法给了我一个可笑的长链字母表.
使用,
for($i = 'A'; $i < 'Z'; $i++){ //note the change of '<=' to '<'
echo $i;
}
Run Code Online (Sandbox Code Playgroud)
确实给我的字母A来Y.
当$i到达Z,它仍然是<= Z,所以它呼应了和增量,然后再次进行测试,看是否该结果是<= Z....问题是,PHP使用Perl样式的字符递增 ....递增Z给人AA,并且AA <== Z是真实的字母比较,所以它继续呼应,递增和通过测试AB,AC以AZ,BA,BB等.....
它只有当它到达YZ下一个增量给出ZZ哪个不是<= Z并且它终止时
解决方案是避免使用<=比较,但要使用!==比较,这需要与下一个增量进行比较Z,即AA如此
for($i = 'A'; $i !== 'AA'; $i++){
...
}
Run Code Online (Sandbox Code Playgroud)