WithCoderWithCoderWithCoder

PHP中命名大小写敏感的规则总结

在做Java,.Net开发时,语言中的命名是区分大小写的。接触PHP开发之后,在命名的时候自动的区分大小写。但是后面发现,在使用Redis时,new redis() 和new Redis()都可以,而且程序没有报错。当时就对PHP中各种大小写规则有点混乱,通过了解,总结了下PHP中命名的大小写规则。(即使某些地方大小写不敏感,但在编程过程中能始终坚持“大小写敏感”的规则是最好的)下面是一些大小写问题注意点:

一. 大小写敏感

1. 变量名区分大小写
        所有变量均区分大小写,包括普通变量以及$_GET,$_POST,$_REQUEST,$_COOKIE,$_SESSION,$GLOBALS,$_SERVER,$_FILES,$_ENV 等;

<?php
$name = 'neil';
echo $name;    //输出'neil'
echo $NAME;    // 出错,未定义的变量 Undefined variable
echo $Name;    // 出错,未定义的变量 Undefined variable

2. 常量名默认区分大小写通常都写为大写

<?php
define('NAME', 'neil');
echo NAME;    //输出'neil'
echo name;    //NOTICE: Use of undefined constant,并输出'name'
echo Name;    //NOTICE: Use of undefined constant,并输出'Name'

3. 数组索引(键名)区分大小写

<?php
$arr = array('name' => 'neil');
echo $arr['name'];    // 输出'neil'
echo $arr['Name'];    // 无输出并报Notice: Undefined index
echo $Arr['name'];    // 变量名区分大小写,所以无输出并报Notice: Undefined variable

4. php.ini配置项指令区分大小写

如 file_uploads = 1 不能写成 File_uploads = 1

二. 大小写不敏感

1. 函数名、方法名、类名不区分大小写

虽然这些不区分大小写,但坚持“大小写敏感”原则,建议还是使用与定义时相同大小写的名字

<?php

class Test
{
   static public function fn1()
   {
       echo 'name';
   }

public function fn2()
   {
       echo 'age';
   }
}

// 以下代码展示PHP中类,方法命名不区分大小写
$obj = new Test;
$obj->fn2();    //成功实例化Test类,并调用fn2方法输出'age'
$obj->Fn2();    //成功实例化Test类,并调用Fn2方法输出'age'

$obj = new test;
$obj->fn2();    //成功实例化Test类,并调用fn2方法输出'age'
$obj->Fn2();    //成功实例化Test类,并调用Fn2方法输出'age'

Test::fn1();    //输出'name'
test::fn1();    //输出'name'
Test::Fn1();    //输出'name'
test::Fn1();    //输出'name'

2. 魔术常量不区分大小写

一些魔术常量包括:__LINE__、__FILE__、__DIR__、__FUNCTION__、__CLASS__、__METHOD__、 __NAMESPACE__等都不区分大小写。

<?php
echo __LINE__;    //输出2

echo __line__;    //输出4

3. NULL、TRUE、FALSE不区分大小写

4. 强制类型转换不区分大小写

如这些

(int),(integer) – 转换成整型
       (bool),(boolean) – 转换成布尔型
       (float),(double),(real) – 转换成浮点型
       (string) – 转换成字符串
       (array) – 转换成数组
       (object) – 转换成对象

总的来说,容易混乱的就是变量、常量、类名、方法名和函数名,但在编程过程中能始终坚持“大小写敏感”的规则是最好的。

欢迎分享交流,转载请注明出处:WithCoder » PHP中命名大小写敏感的规则总结