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) – 转换成对象
1 | <?php |
2 | $a =1; |
3 | var_dump( $a ); //输出 int 1 |
4 | |
5 | $b =(STRING) $a ; |
6 | var_dump( $b ); //输出string '1' (length=1) |
7 | |
8 | $c =(string) $a ; |
9 | var_dump( $c ); //输出string '1' (length=1) |