A student asked a question:
Copy the code The code is as follows:
for($i = 'A'; $i <= 'Z'; $i++) {
echo $i;
}
//What is the output?
The output is:
Copy code The code is as follows:
ABCDEFGHIJKLMNOPQRSTUVWXYZAAABACADAEAFAGAHAIAJAKALAMANAOAPAQARAS…….
is What ?
In fact, it is very simple. There are instructions in the PHP manual, but I am afraid many people will not read the manual carefully chapter by chapter:
Copy code The code is as follows:
PHP follows Perl's convention when dealing with arithmetic operations on character variables and not C's. For example, in Perl 'Z'+1 turns into 'AA', while in C 'Z'+1 turns into '[' ( ord('Z') == 90, ord('[') == 91 ). Note that character variables can be incremented but not decremented and even so only plain ASCII characters (a-z and A-Z) are supported.
When dealing with arithmetic operations on character variables, PHP follows Perl's habits instead of C's. For example, in Perl 'Z'+1 will get 'AA', while in C, 'Z'+1 will get '[' (ord('Z') == 90, ord('[') == 91). Note that character variables can only be incremented, not decremented, and only pure letters (a-z and A-Z) are supported.
That is, if:
Copy code The code is as follows:
$name = "laruence" ;
++$name; //will be "laruencf"
and:
Copy code The code is as follows :
$name = "laruence";
--$name; //No effect, still "laruence"
So, the reason for this problem is When $i = Z, ++$i becomes AA, and when comparing strings,
AA, BB, XX to YZ are all less than or equal to Z... so..
Author : laruence
http://www.bkjia.com/PHPjc/322462.htmlwww.bkjia.comtruehttp: //www.bkjia.com/PHPjc/322462.htmlTechArticleA student asked a question: Copy the code as follows: ?php for($i = 'A'; $ i = 'Z'; $i++) { echo $i; } //What is the output? The output is: Copy the code as follows: ABCDEFGHIJKLMNOPQRSTUVW...