首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP &大小写敏感性

问PHP &大小写敏感性
EN

Stack Overflow用户
提问于 2015-10-22 05:27:36
回答 3查看 55.8K关注 0票数 59

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

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

为什么PHP有部分案例敏感性?

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

更新

我想,为了那些认为我在问哪一个问题的人,我可以补充以下清单:

区分大小写的

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

不区分大小写的

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

注意:

  • 因此,类是一个混合袋:
    • class关键字不区分大小写。
    • 类名不区分大小写,用于声明、实例化和静态调用。
    • 类方法是不区分大小写的函数。
    • 类属性是变量和常量,区分大小写。

​

  • 因为字符串区分大小写,所以依赖字符串的任何东西(如数组键和值)也是区分大小写的。
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2017-09-17 16:07:49

为什么PHP有部分案例敏感性?

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

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

大多数用户输入,例如GET和POST参数,都是作为全局变量注册的。将它们视为不区分大小写可能会引起问题,因此所有变量都被认为是大小写敏感的。

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

常量是特殊的,仅在PHP4时才引入( PHP 3手册提到“常量”,但现在被称为“文本”)。由于一些神秘的原因(可能找不到共识),已经决定允许常量标识符在开发人员discression上是大小写敏感的或不敏感的。有趣的是,虽然define()默认为大小写敏感常量,但相应的C对应方(REGISTER_*_CONSTANT)默认为不区分大小写。

票数 25
EN

Stack Overflow用户

发布于 2015-10-22 05:29:56

财政年度(更新)

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

  • 变量
  • 常数->>check修正1
  • 阵列键
  • 类属性
  • 类常数

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

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

在php.net中

Basics

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

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

修正

  1. 类常量总是区分大小写的.使用const声明的全局常量总是区分大小写的。应该指出,这只适用于常量的短名称,而PHP中的命名空间总是不区分大小写。在默认情况下,用定义()声明的常量是区分大小写的。

一些有用的链接

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

Stack Overflow用户

发布于 2015-10-22 05:29:35

区分大小写的

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

不区分大小写的

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

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33273941

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档