113

PHP 中的函数和方法不区分大小写,如下例所示。

function ag()
{
    echo '2';
}

Ag();
class test {
    function clMe()
    {
        echo 'hi';
    }
}

$instance = new test;
$instance->clme();

但变量并非如此。理由是什么?

4

2 回答 2

105

让我引用采访——PHP 的创造者 Rasmus Lerdorf

PHP 的第一个版本是一组简单的工具,我将它们用于我的网站和几个项目。一个工具对 mSQL 数据库进行了一些花哨的命中日志记录,另一个工具充当表单数据解释器。在我厌倦它之前,我最终用 C 编写了大约 30 个不同的小 CGI 程序,并将它们组合到一个单一的 C 库中。然后我编写了一个非常简单的解析器,它会从 HTML 文件中挑选标签,并用 C 库中相应函数的输出替换它们。

简单的解析器慢慢地发展到包括条件标签,然后是循环标签、函数等。我从来没有想过我正在编写脚本语言。我只是在宏替换解析器中添加了一些功能。我仍在用 C 语言编写所有真正的业务逻辑。

我在某处读到,由于引入的所有函数本质上都感觉像是 HTML 文档中的标记,并且由于 HTML 标记不区分大小写,因此他选择 PHP 中的函数名称不区分大小写。后来,该功能仍然保留在该语言中。

于 2011-06-10T05:52:06.167 回答
35

是的,函数和方法名称不区分大小写。

是的,变量名称区分大小写。

我不确定这是有原因的——除了这种情况已经有很长时间了,而且,出于向后兼容性的原因,情况仍然如此。



作为参考,手册各个页面的几个链接/引用:

对于函数引用

注意: 函数名称不区分大小写,尽管在函数声明中出现时调用函数通常是一种很好的形式。

方法只不过是对象中的函数——尤其是当我们考虑 PHP 4 和向后兼容性时。


并且,对于变量(引用):

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

并且对象属性只不过是对象中的变量——关于 PHP 4 和向后兼容性的相同评论。

于 2010-05-01T11:52:11.607 回答