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

yipeiwu_com6年前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数组排序可以用array_multisort方法实现,但是如果是多维数组,并且我们要指定数组中的某个字段进行排序,那么这就需要我们自己写方法实现了。本文分享了一段PHP指定字段的多...

php商品对比功能代码分享

php商品对比功能代码分享

下面是自己亲自动手编写的代码,和大家一起学习研究。 商品对比调用的JS文件(包含了商品对比框浮动JS): /*浮动窗口*/ (function(){ var n=10...

一个简单的php路由类

本文实例为大家分享了php编写一个简单的路由类,供大家参考,具体内容如下 <?php namespace cmhc\Hcrail; class Hcrail {...

浅析PHP安装扩展mcrypt以及相关依赖项(PHP安装PECL扩展的方法)

浅析PHP安装扩展mcrypt以及相关依赖项(PHP安装PECL扩展的方法)

一:Mcrypt简介Mcrypt是PHP的一个扩展,完成了常用加密算法的封装。其实该扩展是对mcrypt标准类库的封装,mcrypt完成了相当多的常用加密算法,如DES, TripleD...

php中对象引用和复制实例分析

本文实例讲述了php中对象引用和复制。分享给大家供大家参考,具体如下: 引用 $tv2 = $tv1; 或者 $tv2 = &$tv1; 以上两种方式,效果是一样的。...