Sometimes PHP character variables are not executed according to our ideas when used. Regarding this problem, the editor will compile a tutorial for you. Let’s look at the explanation of the strange phenomenon of PHP character variables, as follows.
First of all, the magical PHP supports character data types. Some students wrote this piece of code:
for ($c = 'a'; $c <= 'z'; $c ) {
echo $c . ' ';
However, the result was not what he wanted from a to z
a b c d e f g h i j k l m n o p q r s t u v w x y z aa ab ac ad ae af ag ah ai
aj ak al am an ao ap aq ar as at au av aw ax ay az ba bb bc bd be bf bg bh
bi bj bk bl bm bn bo bp bq br bs bt bu bv bw bx by bz ca cb cc cd ce cf cg
ch ci cj ck cl cm cn co cp cq cr cs ct cu cv cw cx cy cz da db dc dd de df
dg dh di dj dk dl dm dn do dp dq dr ds dt du dv dw dx dy dz ea eb ec ed ee
There are many ways to print from a to z, such as the following
for ($i = 'a'; $i != 'aa'; $i )
echo $i . ' ';
for ($i = ord('a'); $i <= ord('z'); $i )
echo chr($i) . ' ';
But we still have to explain what the hell is that bunch printed above?
This is because PHP follows Perl's usage rather than C's when dealing with arithmetic operations on single character variables.
In Perl
$a = 'Z';
In C
a = 'Z';
Note that character variables can only be incremented, not decremented, and only support pure letters (a-z and A-Z), as shown below:
$a="9F9";
$b="9F9";
var_dump( $a); //"9G0"
Then some students who wrote like this cried
$a = "9E0";
var_dump( $a); // float(10)
PHP never follows the rules! <script>ec(2);</script>