PHP 和区分大小写[重复]

问题描述 投票:0回答:3

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

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

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

请注意,我不是问哪个名称区分大小写,而是问为什么

更新

为了那些认为我在问which的人的利益,我想我可以添加以下列表:

区分大小写

  • 弦乐
  • 变量
  • 对象属性
  • 默认常量

不区分大小写

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

注:

  • 因此,课程是一个混合体:
    • class
      关键字不区分大小写
    • 类名不区分大小写,用于声明、实例化和静态调用
    • 类方法作为函数,不区分大小写
    • 类属性,即变量和常量,区分大小写
  • 因为字符串区分大小写,所以任何依赖于字符串的东西,例如数组键和值,也区分大小写
php case-sensitive case-insensitive
3个回答
38
投票

FYK(已更新)


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

  • 变量
  • 常量->>检查修正1
  • 数组键
  • 类属性
  • 类常量

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

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

php.net

基础知识

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

变量名称遵循与 PHP 中其他标签相同的规则。有效的变量名称以字母或下划线开头,后跟任意数量的字母、数字或下划线。作为正则表达式,它可以表示为:

'[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*'


修正

  1. 类常量始终区分大小写。用 const 声明的全局常量始终区分大小写。应该注意的是,这仅适用于常量的短名称,而 PHP 中的命名空间始终不区分大小写。使用define()声明的常量默认区分大小写

一些有用的链接

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

25
投票

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

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

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

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

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

常量是特殊的,从 PHP 4 开始才被引入(PHP 3 手册提到“常量”,但现在这些被称为“文字”)。由于某些神秘的原因(也许无法达成共识),开发人员决定允许常量标识符区分大小写或不敏感。有趣的是,虽然

define()
默认区分大小写常量,但相应的 C 对应项 (
define()
) 默认不区分大小写。
    


-1
投票
区分大小写

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

不区分大小写

函数、类构造函数、类方法、关键字和构造 (if、else、null、foreach、echo 等)

© www.soinside.com 2019 - 2024. All rights reserved.