PHP &大小写敏感性[重复]

ffdz8vbo  于 12个月前  发布在  PHP
关注(0)|答案(3)|浏览(188)

此问题在此处已有答案

Why are functions and methods in PHP case-insensitive?(2个答案)
4年前关闭。
在PHP中,变量和常量名称是大小写敏感的,而函数名和类名则不是。
据我所知,PHP是唯一一种发生这种情况的语言,我使用过的所有其他语言要么完全区分大小写,要么完全不区分大小写。
为什么PHP partially case sensitive?
请注意,我不是问 * 哪些 * 名字是大小写敏感的,而是问 * 为什么 *。

更新

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

区分大小写

  • 字符串
  • 变量
  • 对象属性
  • 常量,默认情况下
    不区分大小写
  • 关键词等
  • 功能
  • 对象方法
  • 常数,如果相应定义
  • 类名

注意事项:

  • 因此,类是一个混合的袋子:
  • class关键字不区分大小写
  • 对于声明、示例化和静态调用,类名不区分大小写
  • 类方法是函数,不区分大小写
  • 类的属性,作为变量和常量,是区分大小写的
  • 因为字符串是区分大小写的,所以任何依赖于字符串的东西,比如数组键和值,也是区分大小写的
0sgqnhkj

0sgqnhkj1#

FYK(已更新)

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

  • 变量
  • constants ->>* 检查修正案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. Userland用户指南
  2. Why are functions and methods in PHP case-insensitive?
  3. Are PHP functions case sensitive?
  4. Are PHP keywords case-sensitive?
  5. Are PHP function names case-sensitive or not?
  6. Source of PHP Case Sensitive
6tr1vspr

6tr1vspr2#

为什么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)默认为不区分大小写。

bz4sfanl

bz4sfanl3#

区分大小写

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

不区分大小写

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

相关问题