PHP 和区分大小写

2022-08-30 09:46:25

在 PHP 中,变量和常量名称区分大小写,而函数名称则不区分大小写。

据我所知,PHP是唯一发生这种情况的语言。我使用过的所有其他语言要么完全区分大小写,要么完全不区分大小写。

为什么 PHP 部分区分大小写?

请注意,我不是在问哪些名字区分大小写,而是为什么

更新

我想我可以添加以下列表,以利于那些认为我在问哪个的人:

区分大小写

  • 字符串
  • 变量
  • 对象属性
  • 常量,默认情况下

不区分大小写

  • 关键词等
  • 功能
  • 对象方法
  • 常量(如果相应地定义)
  • 类名

注意:

  • 因此,类是一个混合包:
    • 关键字不区分大小写class
    • 类名不区分大小写,用于声明、实例化和静态调用
    • 类方法,即函数,不区分大小写
    • 类属性,作为变量和常量,区分大小写
  • 由于字符串区分大小写,因此依赖于字符串的任何内容(如数组键和值)也区分大小写

答案 1

仅供参考


区分大小写(用户定义和 PHP 定义)

  • 变量
  • 常数
  • 阵列键
  • 类属性
  • 类常量

不区分大小写(用户定义和 PHP 定义)

  • 功能
  • 类构造函数
  • 类方法
  • 关键字和构造(if,else,null,foreach,echo等)

在 php.net

基本

PHP 中的变量由美元符号表示,后跟变量的名称。变量名称区分大小写。

变量名称遵循与 PHP 中其他标签相同的规则。有效的变量名称以字母或下划线开头,后跟任意数量的字母、数字或下划线。作为正则表达式,它将这样表示:'[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*'


一些有用的链接

  1. 用户空间命名指南
  2. 为什么PHP中的函数和方法不区分大小写?
  3. PHP 函数是否区分大小写?
  4. PHP 关键字是否区分大小写?
  5. PHP 函数名称是否区分大小写?
  6. PHP 区分大小写的源代码

答案 2

为什么 PHP 部分区分大小写?

我只能推测这源于非常早期的版本,可能是PHP / FI 2.0。该手册明确指出:

请记住,PHP/FI 函数名称不区分大小写。

当时,大多数用户输入(如 GET 和 POST 参数)始终被注册为全局变量。将这些变量视为不区分大小写可能会导致问题,因此据说所有变量都被视为区分大小写。

据我所知,这些是PHP / FI 2.0中唯一的标识符。所有其他功能都是后来引入的,显然是模仿不区分大小写的函数名称。

常量是特殊的,直到PHP 4才被引入(PHP 3手册提到了“常量”,但这些现在被称为“文字”)。由于某种神秘的原因(也许找不到共识),已经决定允许常量标识符对开发人员的区分大小写或不敏感。有趣的是,虽然默认为区分大小写的常量,但相应的 C 对应项 () 默认为不区分大小写。define()define()REGISTER_*_CONSTANT


推荐