Man*_*ngo 38 php case-sensitive case-insensitive
在PHP中,变量和常量名称区分大小写,而函数名称则不区分大小写.
据我所知,PHP是发生这种情况的唯一语言.我使用的所有其他语言要么完全区分大小写,要么完全不区分大小写.
为什么PHP 部分区分敏感?
请注意,我不是问哪些名称区分大小写,而是为什么.
更新
我想我可以补充说,对于那些谁觉得我问的利益这,下面的列表:
区分大小写
不区分大小写
注意:
class关键字是不区分大小写Abd*_*lam 30
区分大小写(用户定义和PHP定义)
不区分大小写(用户定义和PHP定义)
基本
PHP中的变量由美元符号后跟变量名称表示.变量名称区分大小写.
变量名称遵循与PHP中其他标签相同的规则.有效的变量名称以字母或下划线开头,后跟任意数量的字母,数字或下划线.作为正则表达式,它将表达如下:'[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*'
一些有用的链接
cmb*_*cmb 11
为什么PHP部分区分敏感?
我只能推测这源于非常早期的版本,可能是PHP/FI 2.0.该手册明确指出:
请记住,PHP/FI函数名称不区分大小写.
大多数用户输入(例如GET和POST参数)一直被注册为全局变量.将这些视为不区分大小写可能会导致问题,因此据推测所有变量都被视为区分大小写.
据我所知,这些是PHP/FI 2.0中唯一的标识符类型.所有其他的都是后来介绍的,显然是模仿不区分大小写的函数名.
常量,特殊,仅从PHP 4开始引入(PHP 3手册提到"常量",但现在这些常量称为"文字").出于一些神秘的原因(可能没有找到共识),已经决定允许常量标识符对define()开发人员的压缩区分大小写或不敏感.有趣的是,虽然define()默认为区分大小写的常量,但相应的C对应项(REGISTER_*_CONSTANT)默认为不区分大小写.
| 归档时间: |
|
| 查看次数: |
27723 次 |
| 最近记录: |