一直觉得PHP中各种大小写规则理不清,就连工作多年的老手们也不一定能对PHP大小写敏感问题足够了解。在PHP中,大小写敏感问题的处理比较乱,大家一定要注意。即使某些地方大小写不敏感,但在编程过程中能始终坚持“大小写敏感”是最好不过的。下面整理了一些大小写问题注意点:

大小写敏感

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

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

2、常量名区分大小写

使用define定义的常量是区分大小写的。

<?php
define('BLOGGER','Veitor');
echo BLOGGER; //输出'Veitor'
echo BLOgger; //报NOTICE提示,并输出'BLOgger'
echo blogger; //报NOTICE提示,并输出'blogger'
?>

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

<?php
$arr = array('one'=>'first');
echo $arr['one']; //输出'first'
echo $arr['One']; //无输出并报错
echo $Arr['one']; //上面讲过,变量名区分大小写,所以无输出并报错
?>

大小写不敏感

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

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

<?php
class Test
{
static public function Ceshi()
{
echo '123';
} public funcion Dxx()
{
echo '321';
}
} $obj = new Test;
$obj->Dxx(); //成功实例化Test类,并调用Dxx方法输出'321'
$obj->dxx(); //成功实例化Test类,并调用Dxx方法输出'321'
$obj = new test;
$obj->Dxx(); //成功实例化Test类,并调用Dxx方法输出'321'
$obj->dxx(); //成功实例化Test类,并调用Dxx方法输出'321' Test::Ceshi(); //输出'123'
test::Ceshi(); //输出'123'
Test::ceshi(); //输出'123'
test::ceshi(); //输出'123'
?>

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

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

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

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

这个知道的人应该比较多就不举例了。

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

如这些

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

一般我们都小写,这个问题不大。

总的来说,容易搞不明白的就是变量、常量、类名、方法名和函数名,把这些记住对自己会有帮助的。

最新文章

  1. Vimium使用快捷键总结
  2. windows批处理的介绍
  3. 将Python脚本封装成exe可执行文件 转
  4. centos下cmake安装
  5. jQuery练习一好友列表变色
  6. 《深入理解javascript原型和闭包系列》 知识点整理
  7. 用于显示上个月和下个月_PHP
  8. BZOJ 3243 向量内积
  9. 一个商品练习的py
  10. 表likp新增第一次过账输入日期字段,vl02n/vl01n/vl03n/vl06o的增强
  11. ScrollView嵌套ViewPager 时候 Pager左右滑动不流畅
  12. js原生设计模式——2面向对象编程之闭包1
  13. HTML5网站大观:15个精美的 HTML5 单页网站作品欣赏
  14. 微信跳一跳辅助Demo
  15. 将服务器文件上传到ftp shell操作
  16. self_vs_default_definee_vs_receiver
  17. C#_02.12_基础二_.NET类型存储和变量
  18. Go 字典(Map)
  19. Loadrunder场景设计篇——添加windows Resource计数器和指标说明
  20. Jmeter报文体包含过大附件导致请求报文发送失败的解决办法

热门文章

  1. SQL Server 2008R2 代理服务-开启
  2. 修改织梦DedeCms文章页默认title的方法
  3. npm使用淘宝镜像安装包
  4. 练习E-R图书管理数据库
  5. 关于qwerta
  6. ACM学习历程——UVA10112 Myacm Triangles(计算几何,多边形与点的包含关系)
  7. Django | 执行项目下指定的脚本
  8. bzoj 3073 [Pa2011]Journeys ——线段树优化连边
  9. POJ2481(树状数组:统计数字 出现个数)
  10. POJ2387(最短路入门)