在PHP中,变量和常量名称区分大小写,而函数名称则不区分。
据我所知,PHP是发生这种情况的唯一语言。我使用的所有其他语言都是完全区分大小写或完全不区分大小写。
为什么PHP 部分案例敏感?
请注意,我不是要求哪些名称区分大小写,而为什么。
更新
我想我可以补充一下,为了那些认为我在问哪个的人的利益,以下列表:
区分大小写
不区分大小写
注意:
class
关键字不区分大小写答案 0 :(得分:31)
区分大小写(用户定义和PHP定义)
不区分大小写(用户定义和PHP定义)
<强>基本强>
PHP中的变量由美元符号后跟变量名称表示。变量名称区分大小写。
变量名遵循与PHP中其他标签相同的规则。有效的变量名称以字母或下划线开头,后跟任意数量的字母,数字或下划线。作为正则表达式,它将表达为:'[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*'
一些有用的链接
答案 1 :(得分:7)
为什么PHP部分区分大小?
我只能推测这源于非常早期的版本,可能是PHP / FI 2.0。 manual明确指出:
请记住,PHP / FI函数名称不区分大小写。
大多数用户输入(例如GET和POST参数)一直被注册为全局变量。将这些视为不区分大小写可能会导致问题,因此据推测所有变量都被视为区分大小写。
据我所知,这些是PHP / FI 2.0中唯一的标识符类型。所有其他的都是后来介绍的,显然是模仿不区分大小写的函数名称。
特殊的常量,从PHP 4开始引入(PHP 3 manual提到“常量”,但现在这些常量被称为“文字”)。出于一些神秘的原因(可能没有找到共识),已经决定允许常量标识符define()
d对开发人员的压缩区分大小写或不敏感。有趣的是,虽然define()
默认为区分大小写的常量,但相应的C对应项(REGISTER_*_CONSTANT
)默认为不区分大小写。
答案 2 :(得分:1)
区分大小写
变量,常量,数组键,类属性,类常量
不区分大小写
函数,类构造函数,类方法,关键字和构造 (if,else,null,foreach,echo等。)
答案 3 :(得分:-1)
类名称也不区分大小写,正如我在一些有效的遗留代码中注意到的那样。
此处还报告了此行为:Capital letters in class name PHP