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

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

function ag()
{
echo '2';
}


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


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

但变量不是这样的,理由是什么?

29748 次浏览

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

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

我不确定这是否有什么原因——除非这种情况已经持续了很长时间,因此,出于向下兼容的原因,情况依然如此。



作为参考,一些手册各页的链接/引用:

对于函数 (< a href = “ http://fr.php.net/Manual/en/function tions.user-Definition ed.php”rel = “ noReferrer”> quoting ):

Note: Function names are 不区分大小写,尽管它通常是 调用函数的好形式 出现在他们的声明中。

并且方法并不比对象中的函数多多少——特别是当我们考虑 PHP4和向后兼容性时。


And, for variables (引用):

PHP 中的变量由 美元符号后跟 变量名为 区分大小写。

And object properties are not much more than variables in objects -- same remark about PHP 4 and backward-compatibility.

让我引用 访谈-PHP 的创造者,拉斯马斯 Lerdorf的话

The first version of PHP was a simple set of tools that I put together for my Website and for a couple of projects. One tool did some fancy hit logging to an mSQL database, another acted as a form data interpreter. I ended up with about 30 different little CGI programs written in C before I got sick of it, and combined all of them into a single C library. I then wrote a very simple parser that would pick tags out of HTML files and replace them with the output of the corresponding functions in the C library.

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

我在哪里读到过,由于所有引入的函数基本上都像 HTML 文档中的标记,而且由于 HTML 标记不区分大小写,所以他选择 PHP 中的函数名不区分大小写。后来这个特征在语言中仍然存在。