为什么PHP中的函数和方法不区分大小写?

2022-08-30 07:19:05

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

function ag()
{
    echo '2';
}

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

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

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


答案 1

让我引用一下采访 – PHP的创造者Rasmus Lerdorf的话

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

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

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


答案 2

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

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

我不确定这其中是否有原因 - 除了它已经这样很长一段时间了,因此,出于向后兼容性的原因,情况仍然如此。



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

对于函数引用):

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

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


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

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

对象属性只不过是对象中的变量——关于 PHP 4 和向后兼容性的评论也是如此。


推荐