PHP&区分大小写

时间:2015-10-22 05:27:36

标签: php case-sensitive case-insensitive

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

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

为什么PHP 部分案例敏感?

请注意,我不是要求哪些名称区分大小写,而为什么

更新

我想我可以补充一下,为了那些认为我在问哪个的人的利益,以下列表:

区分大小写

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

不区分大小写

  • 关键词等
  • 功能
  • 对象方法
  • 常量,如果相应定义

注意:

  • 因此,课程是一个混合包:
    • class关键字不区分大小写
    • 类方法,即函数,不区分大小写
    • 类属性,是变量&常量,区分大小写
  • 因为字符串区分大小写,所以依赖于字符串的任何内容(例如数组键和值)也区分大小写

4 个答案:

答案 0 :(得分:31)

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

  • 变量
  • 常数
  • 数组键
  • 类属性
  • 类常量

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

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

php.net

<强>基本

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

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

一些有用的链接

  1. Userland Naming Guide
  2. Why are functions and methods in PHP case-insensitive?
  3. Are PHP functions case sensitive?
  4. Are PHP keywords case-sensitive?
  5. Is PHP function names case-sensitive or not?
  6. Source of PHP Case Sensitive

答案 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