【问题标题】:Are PHP keywords case-sensitive?PHP 关键字是否区分大小写?
【发布时间】:2013-12-17 01:22:57
【问题描述】:

例如,下面的程序是否有意义,如果有意义,应该打印什么?

<?php
FuncTIon fOo($x) { eChO $x; }
FOO('bar');
IF (TRuE) { echO 'qux'; }
?>

我的解释器运行它并打印barqux,暗示关键字区分大小写:

$ php case_sensitive_keywords.php 
barqux
$ php --version
PHP 5.5.7-1+sury.org~precise+1 (cli) (built: Dec 12 2013 21:37:40) 

但是,this same question was asked last year,答案说关键字 区分大小写,这与我的 PHP 解释器似乎告诉我的直接矛盾!

【问题讨论】:

  • @JohnConde 这真的是重复的吗?那个问题是关于函数的,这个问题是关于关键字的。下面的答案超越了一切,详细说明了所有语言元素。
  • 我认为这个问题被关闭只是因为它是一个愚蠢的问题(你可以通过实验轻松地回答它,就像你所做的那样),并且“不具建设性”是最接近的可用理由。这不像 PHP 有一个独立于实现的官方规范;只有一个实现,语言就是那个实现的任何东西。
  • @jameshfisher Meta Stack Overflow 是讨论特定问题和关闭的地方。我已经从您的问题中删除了您的 cmets。我还建议您不要在您的 cmets 和问题中包含脏话,因为它们可能会被删除。
  • @Duncan,啊,我明白了。谢谢,我以后会用这个。 (“关闭”通知可能会更清楚地说明这一点。)

标签: php syntax keyword


【解决方案1】:

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

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

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

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

【讨论】:

  • 可以通过将类名添加到不区分大小写的用途列表中来改进此答案。
【解决方案2】:

没有。关键字不区分大小写。 Lerdorf et al., Programming PHP,第 17 页:

用户定义的类和函数的名称,以及内置的 构造和关键字,如@9​​87654322@、whileclass等,是 不区分大小写。因此,这三行是等价的:

echo("hello, world");
ECHO("hello, world");
EcHo("hello, world");

【讨论】:

  • 它也适用于命名空间吗?我的意思是,像 'Nspace\SubNamespace\SubSubNamespace' 和 'nspace\subnamespace\subsubNamespace' 和 'NSpace\SuBNameSpacE\SUBsuBNamesPACE' 这样的命名空间是等价的吗?
  • @tonix 它们在“内部”是不敏感的,但是如果您的文件系统区分大小写,则 PSR4 自动加载器不会找到大小写错误的文件,如果它们与内部命名空间或类名不匹配。这是从 Windows 或 Mac 上传代码到 Unix 主机时的常见问题。
【解决方案3】:
  1. 不,关键字不区分大小写。
  2. 类名和函数名也不区分大小写。

【讨论】:

    猜你喜欢
    • 2012-12-20
    • 2012-03-01
    • 1970-01-01
    • 2014-09-02
    • 1970-01-01
    • 2017-07-13
    • 1970-01-01
    • 2013-06-28
    • 1970-01-01
    相关资源
    最近更新 更多