PHP对大小写敏感问题的处理比较乱,大家一定要注意。推荐大家始终坚持“大小写敏感”。这里面需要注意的是类和函数不区分大小写。但即使你疏忽了,在调试时解释器也会抓住这个错误的。
一、大小写敏感
1. 变量名区分大小写
所有变量均区分大小写,包括普通变量以 及$_GET,$_POST,$_REQUEST,$_COOKIE,$_SESSION,$GLOBALS,$_SERVER,$_FILES,$_ENV 等;
1 | <?php |
2 |
$abc
= 'abcd' ;
|
3 |
echo
$abc ; //输出 'abcd'
|
4 |
echo
$aBc ; //无输出
|
5 |
echo
$ABC ; //无输出
|
2. 常量名默认区分大小写,通常都写为大写
(但没找到能改变这个默认的配置项,求解)
1 | <?php |
2 |
define( "ABC" , "Hello World" );
|
3 |
echo
ABC; //输出 Hello World
|
4 |
echo
abc; //输出 abc
|
3. php.ini配置项指令区分大小写
如 file_uploads = 1 不能写成 File_uploads = 1
二、大小写不敏感
1. 函数名、方法名、类名 不区分大小写,但推荐使用与定义时相同的名字
1 | <?php |
2 |
function
show(){
|
3 |
echo
"Hello World" ;
|
4 | } |
5 |
show(); //输出 Hello World 推荐写法
|
6 |
SHOW(); //输出 Hello World
|
1 | <?php |
2 |
class
cls{
|
3 |
static
function func(){
|
4 |
echo
"hello world" ;
|
5 | } |
6 | } |
7 |
8 |
Cls::FunC(); //输出hello world
|
2. 魔术常量不区分大小写,推荐大写
包括:__LINE__、__FILE__、__DIR__、__FUNCTION__、__CLASS__、__METHOD__、 __NAMESPACE__。
1 | <?php |
2 |
echo
__line__ ; //输出 2
|
3 |
echo
__LINE__ ; //输出 3
|
3. NULL、TRUE、FALSE不区分大小写
01 | <?php |
02 |
$a
= null;
|
03 |
$b
= NULL;
|
04 |
05 |
$c
= true;
|
06 |
$d
= TRUE;
|
07 |
08 |
$e
= false;
|
09 |
$f
= FALSE;
|
10 |
11 |
var_dump( $a
== $b );
//输出 boolean true
|
12 |
var_dump( $c
== $d );
//输出 boolean true
|
13 |
var_dump( $e
== $f );
//输出 boolean true
|
4.类型强制转换,不区分大小写
包括
- (int),(integer) – 转换成整型
- (bool),(boolean) – 转换成布尔型
- (float),(double),(real) – 转换成浮点型
- (string) – 转换成字符串
- (array) – 转换成数组
- (object) – 转换成对象