簡體   English   中英

是否有有用的PHP命名約定?

[英]Are there helpful PHP naming conventions?

我來自Java / Objective-C到PHP,發現它很糟糕 我的意思是,PHP很好,真的。 但是當你看到一堆變量時,你不知道:這是一個數字嗎? 那是一個字符串嗎? 或者甚至是一個花哨的對象,可以在調用方法時執行操作?

所以我想知道變量是否有有用的可重用命名約定來幫助確定某些東西是否是某個對象,或者某些東西只是一個無聊的變量。 我會說如果某個東西是一個對象,即一個類的實例,那么第一個字符必須是BIG。 但這只是猜測。 希望從PHP專業人員那里閱讀一些技巧:-)

與其他語言一樣,PHP中沒有單一的編碼標准。 除了其他(請參閱注釋)之外,您還可以查看Zend編碼標准 ,因為它們與PHP核心開發團隊非常接近(並且部分相同)。

什么是阻止您使用您已經熟悉的約定? 很可能PHP之前沒有任何獨特的東西,你以前沒有見過。

我通常堅持這個簡單的規則

有意義的Camel Case變量名(前面帶有類型前綴)ex:intNbDaysLeft對整數有用

我使用Zend Eclipse,因此我會像這樣描述我的變量,以確保它們被智能化。 然后,我更少擔心,“這是什么?”

/**
 * @var Zend_Form_Element
 */
protected $_member;

要么

/**
 * @param Zend_Form_Element $input
 */
function do_it( $input )

要么

$my_var = some_function(); /* @var $my_var Zend_Form_Element */

您應該很快發現在PHP中幾乎沒有類型提示,其原因很明顯,在這種動態語言類型中可能會發生變化,因此名稱不是很重要。

將PHPDoc與Eclipse或NetBeans一起使用有幫助,但是你不能依賴它,如果你想確定你的變量是特定類型的,你必須檢查它(is_array(),instanceof,ect。)。

此外,PHP為您做了很多,它將代表您轉換類型,它將根據類型采取不同的行動。

PHP主要使用字符串,因此大多數變量都屬於該類型。 應用程序可以有很多類型,但單個方法不應該使用太多。 如果您發現自己使用了很多對象而無法輕松跟蹤其實例名稱,那么這是一些設計問題,而不是命名約定問題。

如果你想確定你沒有錯誤地使用某些變量,請務必進行單元測試。 PHP中的標准是phpunit

我最喜歡的PHP命名約定是“PHP”總是被稱為“巨大的cr-我們不會用bargepole接觸”的約定。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM