PHP大小写问题:函数名和类名不区分,变量名区分

yipeiwu_com7年前PHP代码库

PHP对大小写敏感问题的处理比较乱,写代码时可能偶尔出问题,所以这里总结一下。
但我不是鼓励大家去用这些规则。推荐大家始终坚持“大小写敏感”,遵循统一的代码规范。

1. 变量名区分大小写

复制代码 代码如下:

 <?php
 $abc = 'abcd';
 echo $abc; //输出 'abcd'
 echo $aBc; //无输出
 echo $ABC; //无输出

2. 常量名默认区分大小写,通常都写为大写
(但没找到能改变这个默认的配置项,求解)

复制代码 代码如下:

 <?php
 define("ABC","Hello World");
 echo ABC; //输出 Hello World
 echo abc; //输出 abc

3. php.ini配置项指令区分大小写
如 file_uploads = 1 不能写成 File_uploads = 1

4. 函数名、方法名、类名不区分大小写
但推荐使用与定义时相同的名字

复制代码 代码如下:

 <?php
 function show(){
 echo "Hello World";
 }

 show(); //输出 Hello World 推荐写法

 SHOW(); //输出 Hello World

复制代码 代码如下:

 <?php
 class cls{
 static function func(){
 echo "hello world";
 }
 }
 Cls::FunC(); //输出hello world

5. 魔术常量不区分大小写,推荐大写
包括:__LINE__、__FILE__、__DIR__、__FUNCTION__、__CLASS__、__METHOD__、__NAMESPACE__。

复制代码 代码如下:

 <?php
 echo __line__; //输出 2
 echo __LINE__; //输出 3

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

复制代码 代码如下:

 <?php
 $a = null;
 $b = NULL;
 $c = true;
 $d = TRUE;
 $e = false;
 $f = FALSE;
 var_dump($a == $b); //输出 boolean true
 var_dump($c == $d); //输出 boolean true
 var_dump($e == $f); //输出 boolean true

PHP变量名区分大小写,函数名不区分大小写,经常被新手忽视的小细节,测试如下.

PHP变量名区分大小写测试:

复制代码 代码如下:

<?php
    $aaa = "jb51.net";
    $AAA = "JB51.CN";
    echo $aaa.'-'.$AAA;  //jb51.net-JB51.CN
?>

PHP函数名不区分大小写测试:

复制代码 代码如下:

<?php
    function bbb(){
        echo 'abc';
    }
    function BBB(){
        echo "Abc";
    }
?>

上面这段代码会报错:( ! ) Fatal error: Cannot redeclare BBB()

相关文章

php类常量用法实例分析

本文实例讲述了php类常量用法。分享给大家供大家参考。具体如下: <?php /** * PHP类常量 * * 类常量属于类自身,不属于对象实例,不能通过对象实例...

关于PHP转换超过2038年日期出错的问题解决

前言 最近在写一个项目接口。测试中发现服务器上测试正常的功能,在本地一直有问题。一步步的排查,最终锁定问题是由于函数strtotime返回了一个false值,导致数据插入数据库失败。 相...

phpMyAdmin 安装及问题总结

1/无法载入mcrypt扩展,请检查PHP配置; 2/配置文件现在需要绝密的短语密码(blowfish_secret); 3/#2003-服务器没有响应。 由于目前phpMyAdmin的...

PHP中for与foreach的区别分析

注意: 除非数组是被引用,foreach 所操作的是指定数组的一个拷贝,而不是该数组本身。因此数组指针不会被 each() 结构改变,对返回的数组单元的修改也不会影响原数组。 1. 自p...

使用VisualStudio开发php的图文设置方法

使用VisualStudio开发php的图文设置方法

现在,三层、mvc之类的思想遍地开花,使得代码和html得以分离,加之随着开发的分工和项目的增大,一个好的IDE能为编码工作提供了许多的便利。就像开发java用eclipse,.NET用...