PHP & 区分大小写
PHP & Case Sensitivity
在PHP中,变量名和常量名区分大小写,而函数名不区分大小写。
据我所知,PHP 是唯一会发生这种情况的语言。我使用的所有其他语言要么完全区分大小写,要么完全不区分大小写。
为什么 PHP 部分 区分大小写?
请注意,我不是在问哪个 名称区分大小写,而是为什么。
更新
为了那些认为我在问 which 的人的利益,我想我可以添加以下列表:
区分大小写
- 字符串
- 变量
- 对象属性
- 常量,默认
不区分大小写
- 关键词等
- 函数
- 对象方法
- 常量,如果有相应的定义
- Class 姓名
注:
因此,- Classes 是一个混合包:
class
关键字不区分大小写
- Class 名称不区分大小写,用于声明、实例化和静态调用
- Class 方法是函数,不区分大小写
- Class 属性是变量和常量,区分大小写
- 因为字符串区分大小写,任何依赖于字符串的东西,例如数组键和值,也是区分大小写的
区分大小写
variables, constants, array keys, class properties, class constants
不区分大小写
functions, class constructors, class methods, keywords and constructs
(if, else, null, foreach, echo etc.)
仅供参考
区分大小写(用户定义和PHP定义)
- 变量
- 常量
- 数组键
- class 属性
- class 常量
不区分大小写(用户定义和PHP定义)
- 函数
- class 构造函数
- class 方法
- 关键字和构造(if、else、null、foreach、echo 等)
基础知识
PHP 中的变量由美元符号后跟变量名称表示。变量名区分大小写。
变量名称遵循与 PHP 中其他标签相同的规则。有效的变量名以字母或下划线开头,后跟任意数量的字母、数字或下划线。作为正则表达式,它可以这样表示:'[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*'
一些有用的链接
- Userland Naming Guide
- Why are functions and methods in PHP case-insensitive?
- Are PHP functions case sensitive?
- Are PHP keywords case-sensitive?
- Is PHP function names case-sensitive or not?
- Source of PHP Case Sensitive
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 提到 "constants",但现在这些常量被称为 "literals") .出于某种神秘的原因(也许无法找到共识),已决定允许常量标识符 define()
d 区分大小写或不区分大小写,这取决于开发人员的讨论。有趣的是,虽然 define()
默认为区分大小写的常量,但相应的 C 对应项 (REGISTER_*_CONSTANT
) 默认为不区分大小写。
在PHP中,变量名和常量名区分大小写,而函数名不区分大小写。
据我所知,PHP 是唯一会发生这种情况的语言。我使用的所有其他语言要么完全区分大小写,要么完全不区分大小写。
为什么 PHP 部分 区分大小写?
请注意,我不是在问哪个 名称区分大小写,而是为什么。
更新
为了那些认为我在问 which 的人的利益,我想我可以添加以下列表:
区分大小写
- 字符串
- 变量
- 对象属性
- 常量,默认
不区分大小写
- 关键词等
- 函数
- 对象方法
- 常量,如果有相应的定义
- Class 姓名
注:
-
因此,
- Classes 是一个混合包:
class
关键字不区分大小写- Class 名称不区分大小写,用于声明、实例化和静态调用
- Class 方法是函数,不区分大小写
- Class 属性是变量和常量,区分大小写
- 因为字符串区分大小写,任何依赖于字符串的东西,例如数组键和值,也是区分大小写的
区分大小写
variables, constants, array keys, class properties, class constants
不区分大小写
functions, class constructors, class methods, keywords and constructs (if, else, null, foreach, echo etc.)
仅供参考
区分大小写(用户定义和PHP定义)
- 变量
- 常量
- 数组键
- class 属性
- class 常量
不区分大小写(用户定义和PHP定义)
- 函数
- class 构造函数
- class 方法
- 关键字和构造(if、else、null、foreach、echo 等)
基础知识
PHP 中的变量由美元符号后跟变量名称表示。变量名区分大小写。
变量名称遵循与 PHP 中其他标签相同的规则。有效的变量名以字母或下划线开头,后跟任意数量的字母、数字或下划线。作为正则表达式,它可以这样表示:'[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*'
一些有用的链接
- Userland Naming Guide
- Why are functions and methods in PHP case-insensitive?
- Are PHP functions case sensitive?
- Are PHP keywords case-sensitive?
- Is PHP function names case-sensitive or not?
- Source of PHP Case Sensitive
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 提到 "constants",但现在这些常量被称为 "literals") .出于某种神秘的原因(也许无法找到共识),已决定允许常量标识符 define()
d 区分大小写或不区分大小写,这取决于开发人员的讨论。有趣的是,虽然 define()
默认为区分大小写的常量,但相应的 C 对应项 (REGISTER_*_CONSTANT
) 默认为不区分大小写。