search
Homephp教程PHP源码Explanation of strange phenomena in PHP character variables

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 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

ef eg eh ei ej ek el em en eo ep eq er es et eu ev ew ex... on to yz


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 echo chr($i) . ' ';

echo implode(' ', range('a', 'z'));


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';

$a; //'AA'


In C
a = 'Z';

a ; //'[' Because the ASCII value of 'Z' is 90, the ASCII value of '[' is 91


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"

var_dump(--$b); //"9F9" unchanged


Then some students who wrote like this cried
$a = "9E0";
var_dump( $a); // float(10)

#This TM has become scientific notation again. . .

PHP never follows the rules! <script>ec(2);</script>
Statement
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Tools

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Linux new version

SublimeText3 Linux new version

SublimeText3 Linux latest version

MantisBT

MantisBT

Mantis is an easy-to-deploy web-based defect tracking tool designed to aid in product defect tracking. It requires PHP, MySQL and a web server. Check out our demo and hosting services.

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use