我已經閱讀了很多流行的開源PHP項目標準手冊。PHP - 函數/變量命名
很多強制變量空格強調下劃線,並強制執行camelCase。
全局函數和變量的名稱應該與類方法/屬性的名稱不同嗎?
我知道最重要的是一致性,但我想聽聽這方面的一些想法。
你會推薦什麼?
我已經閱讀了很多流行的開源PHP項目標準手冊。PHP - 函數/變量命名
很多強制變量空格強調下劃線,並強制執行camelCase。
全局函數和變量的名稱應該與類方法/屬性的名稱不同嗎?
我知道最重要的是一致性,但我想聽聽這方面的一些想法。
你會推薦什麼?
我覺得camelCase的輸入有點令人愉快,因爲我覺得下劃線有點尷尬。
請勿使用全局變量。
我避免了PHP中的程序編碼,我發現OOP更易於組織。此外,PHP中已經沒有足夠的東西在它的全局名稱空間中了嗎?
一般我試着堅持:
Item
,,DB
,Items
。$column
,$name
DEBUG
,TYPE_FOO
。get
,perform
,do
),後接名詞(單數或複數)開始描述它運行在什麼或返回(getThing()
,getThings()
)這絕對取決於關於你的代碼。如果我編碼PHP或PEAR,我使用camelCase。如果我在做Python/Django,我使用under_scores。如果我正在寫ELisp,我使用虛線分隔符。
是的,最重要的是一致性。如果你是唯一的開發者,堅持一種方法。如果您正在與一個團隊合作,請與其他團隊成員交談。區分全局變量,函數/方法和類將使讀取代碼更容易。對於一些人來說,camelCase比use_underlines更容易,所以你的團隊需要討論選項並選擇一種風格。
注:我用下劃線爲我的MySQL table_names,我使用UpperCamelCase爲MySQL字段名稱:
通常我使用$ lowerCamelCase變量名和類屬性,但如果它包含一個字段的值,我使用$ UpperCamelCase字段名稱,或者如果它是一個表中的數據數組,我將使用$ table_name。通過這種方式,我可以很容易地使用grep
來獲得SomeField
或some_table
,並找到指向它的所有內容。
你不必使用這個確切的系統,但能夠搜索字段或表的所有引用是一個巨大的好處。
在PHP本身中,幾乎每個本地函數都是用下劃線分隔的。文檔中的大多數PHP代碼示例都是用下劃線分隔的。
在大多數語言中,我認爲Camel或Pascal框架更合適,但我認爲在PHP中使用下劃線分隔有明確的歷史記錄。
我以前更喜歡使用camelCase,但爲了在更大的應用程序中保持一致性,我採用了CodeIgniter的樣式指南。
即使你不使用他們的框架,你可以欣賞走進界定清晰,全面的方式工作:http://codeigniter.com/user_guide/general/styleguide.html
Zend Frameworks naming convention(這是基於PEAR)可能是最接近你來到一個標準在PHP世界中。就我個人而言,我傾向於使用lowercase_underscore作爲變量名稱,但除此之外,我主要遵循ZF的慣例。
我的目標 - 無論具體的名稱格式 - 是增加更多的信息。名稱是否可以提高對代碼的理解和/或表達重要的內容?
如果確實如此,那麼您已經成功了。
如果名稱沒有添加任何內容,爲什麼你打擾它命名呢?
我會推薦閱讀PEAR Coding Standards:
我就這一個本星期早些時候寫道。由於PEAR是官方PHP擴展和應用程序庫,它可以被認爲是該語言的官方編碼標準。
同意,我正在學習面向對象和靜態類的進展(將所有字符串格式化程序等移出全局名稱空間) – alex 2008-12-12 04:41:37