2011-06-02 223 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