PHP和案例敏感性
作者:互联网
在PHP中,变量和常量名称区分大小写,而函数名称则不区分大小写.
据我所知,PHP是发生这种情况的唯一语言.我使用的所有其他语言要么完全区分大小写,要么完全不区分大小写.
为什么PHP部分区分敏感?
请注意,我不是问哪些名称区分大小写,而是为什么.
更新
我想我可能会补充一下,为了那些认为我问的人的利益,以下列表:
区分大小写
>字符串
>变量
>对象属性
>常量,默认情况下
不区分大小写
>关键词等
>功能
>对象方法
>常量,如果相应定义
>班级名称
注意:
>因此,课程是一个混合包:
> class关键字不区分大小写
>类名称不区分大小写,用于声明,实例化和静态调用
>作为函数的类方法不区分大小写
>类属性,变量&常量,区分大小写
>因为字符串区分大小写,所以依赖于字符串的任何内容(例如数组键和值)也都区分大小写
解决方法:
Why is PHP partially case senstive?
我只能推测这源于非常早期的版本,可能是PHP / FI 2.0. manual明确指出:
Keep in mind that PHP/FI function names are not case sensitive.
大多数用户输入(例如GET和POST参数)一直被注册为全局变量.将这些视为不区分大小写可能会导致问题,因此据推测所有变量都被视为区分大小写.
据我所知,这些是PHP / FI 2.0中唯一的标识符类型.所有其他的都是后来介绍的,显然是模仿不区分大小写的函数名.
特殊的常量仅在PHP 4中引入(PHP 3 manual提到“常量”,但现在这些常量称为“文字”).由于一些神秘的原因(可能没有找到共识),已决定允许常量标识符定义()d对开发人员的压缩区分大小写或不敏感.有趣的是,虽然define()默认为区分大小写的常量,但相应的C对应项(REGISTER _ * _ CONSTANT)默认为不区分大小写.
标签:php,case-insensitive,case-sensitive 来源: https://codeday.me/bug/20190915/1806013.html