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

时间:2010-05-01 11:48:55

标签: php syntax case-insensitive

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

function ag()
{
    echo '2';
}

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

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

但这不是变量的情况。理由是什么?

2 个答案:

答案 0 :(得分:90)

让我引用Interview – PHP’s Creator, Rasmus Lerdorf

  

PHP的第一个版本是一组简单的工具,我将它们放在一起用于我的网站和几个项目。一个工具做了一些奇特的命中记录到mSQL数据库,另一个工具作为表单数据解释器。在我厌倦了它之前,我最终得到了大约30个用C语言编写的不同的小CGI程序,并将它们全部组合成一个C库。然后我写了一个非常简单的解析器,它将从HTML文件中选择标签,并用C库中相应函数的输出替换它们。

     

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

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

答案 1 :(得分:34)

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

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

我不确定是否有这样的理由 - 除非长期以来一直如此,因此,出于向后兼容的原因,情况仍然存在。



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

对于函数quoting

  

注意:功能名称是   不区分大小写,但通常是这样   良好的形式来调用函数   出现在他们的声明中。

方法不仅仅是对象中的函数 - 特别是当我们考虑PHP 4和向后兼容性时。


并且,对于变量(quoting):

  

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

对象属性不仅仅是对象中的变量 - 与PHP 4和向后兼容性相同。