2011-06-02 222 views
8

我现在正在编码smt,并且被PHP有时用下划线调用它的函数,有时甚至作为一个单词这一事实让我有些不解。那是怎么回事?PHP命名约定?

实施例:

INT的strlen(字符串$ STR)

布尔in_array(混合$针,数组$草堆[,布尔$严格= FALSE] )

我希望有一个很好的理由这个,并且真的想知道它是什么。

+0

是这一个真正的问题?我的意思是,我们真的可以知道没有参加战争吗? – Zirak 2011-06-02 07:07:40

+0

它甚至有像'imagecreatefromgd2part'这样的函数名:)以及类似函数的参数的混合顺序。 – binaryLV 2011-06-02 07:08:26

+4

欢迎来到传统世界。这个问题没有答案,只有咆哮和flamewars。我认为这只是整个语言的症状。 – deceze 2011-06-02 07:09:13

回答

3

引自:http://tnx.nl/php.html

PHP有不一致的功能命名
中有下划线(S)与不下划线(S)没有明显的系统:

underscore    no underscore: 

stream_get_line   readline 
disk_free_space   diskfreespace 
is_object    isset 
mcal_day_of_week   jddayofweek 
set_error_handler  setlocale 
snmp_get_quick_print  snmpget 
get_browser    getallheaders 
base64_encode   urlencode 
image_type_to_mime_type imagetypes 
msql_num_fields   mysql_numfields 
php_uname    phpversion 
strip_tags    stripslashes 
bind_textdomain_codeset bindtextdomain 
cal_to_jd    gregoriantojd 
str_rot13    strpos 
+0

Thx安妮......这是一个赢家:)虽然它只是坏评论,或者他们在那里盛行,至少。尽管如此,它为我提供了很好的服务。 – hummingBird 2011-06-02 07:17:59

+0

通过该列表...许多陈述都像10岁。 – binaryLV 2011-06-02 07:31:41

1

欢迎来到php。这已经是很多次的话题了。底线是,克服它的唯一方法是使用以PHP为中心的ide /编辑器。顺便说一下,这只是问题的一半,你也会看到顺序相反的函数。 像

(mixed $needle , array $haystack) 

然后

(array $haystack , string $needle) 

所以也就习惯了,或者出去是座右铭。

+0

haha​​ha :)...是的,那个人也是赢家。我正在处理这个相当不错的问题......我已经编程了几年的PHP ...但这对我来说一直是一个难题。并不时有挫折感。 – hummingBird 2011-06-02 07:15:55

+0

'implode(string $ glue,array $ pieces)'和'implode(array $ pieces,string $ glue)''? ;) – binaryLV 2011-06-02 07:20:19