谈谈PHP内置函数命名

我也做一次“谈谈哥”。

昨天Alex He同学提到PHP里面的方法名字全是下划线。关于这个问题,我也曾小郁闷过一阵子。

PHP中的函数命名,总体说来有四种完全不同的方式:

  第一种:C式

    PHP是C语言实现的。或许是因为这个原因,PHP中有大量的C语言风格的函数名。譬如:fsockopen——用于打开一个socket连接。

  第二种:下划线式

    PHP中有大量的以这种方式命名的函数。比较典型的下划线式命名函数,如上一篇博客介绍的stream_*系列函数,还有很多很常用的数组函数如 in_array()、array_keys()等等都是此种风格的代表。这种命名方式相比C式进步了不少,起码能通过函数名大概了解函数用途。但由于Java、C#等主流面向对象语言都采用驼峰式命名法,所以下划线式命名看起来并不那么面向对象。

  第三种:驼峰式

    驼峰式应该说是时下最流行的命名方式。喜欢面向对象编程的同志们应该都喜欢吧。PHP也有采用驼峰式命名的函数。- -||。。。不过它们都是包装在类中的。例如比较常用的XML解析类SimpleXMLElement,还有目录迭代器类DirectoryIterator都是驼峰式。

  第四种:无厘头式

    典型代表:urlencode()……按照函数功能来说,此函数应该被命名为encodeurl()更显合理。再按照PHP惯常的命名规则,它应该被命名为url_encode()才对。可不知怎么的,它就有了这么个奇怪的名字。

 

这就是PHP函数命名的现状。我个人觉得主要是历史原因造成了这种状况。PHP自从1994年发布以来,直到2004年PHP 5发布才实现了较完整的面向对象机制。所以PHP中包含大量C式、类C式函数并不奇怪。

posted on 2010-07-29 11:17  followflows  阅读(2084)  评论(1编辑  收藏  举报

导航