一般約定而言 類、函數和變量的名字應該是能夠讓代碼閱讀者能夠容易地知道這些代碼的作用,應該避免使用凌磨兩可的命名。
以下是在開發過程中常見的命名規則總結
1、類的命名
- 使用大寫字母作為詞的分割,其余的字母均為小寫。
- 類名的首字母必須為大寫英文字母。
- 類名命名不要使用下划線('_')。
- 如:TestClass、User、UserType、ControllerAdmin。
2、類屬性的命名
- 類的屬性命名應該以字符'm'為前綴。
- 前綴'm'之后采用和類名一致的命名規則。
- 前綴'm'總是在名字的開頭起到修飾的作用,就像'r'開頭表示引用一樣。
- 如: mUserName、mUserKey 等。
3、方法的命名
- 方法要依賴於類對象,而函數不需要依賴於類對象。因此一般命名時注意區分方法和函數的命名,函數一般作為擴展文件引入。
- 方法的作用都是執行一個動作,達到一個目的。所以名稱應該說明該方法是做什么的。一般名稱的前綴都是有第一規律的,如is(判斷)、get(得到),set(設置)。
- 方法的命名第一個單詞的首字母小寫,之后每個單詞的首字母必須為大寫。如:
class UserModel { $mUserName = ''; //設置類的屬性 $mUserKey =''; function getUser($userId) { //定義方法,得到用戶信息 ... } }
4、方法中參數的命名
- 第一個字符或第一個詞必須為小寫字母。
- 在第一個字符或第一個詞之后的詞都按照類命名的規則首字母大寫。
- 如:
class User { function getUser($userId) { ... } function getMe(&$rUserKey) { ... } }
5、引用變量
- 引用變量要用 'r'前綴來修飾。如:$r_key = &$key;
6、變量的命名
- 一般所有字母都使用小寫。
- 使用下划線'_'作為每個詞的分割。
- 如: $msg_code、$msg_type、$msg_error 等。
- 臨時變量通常使用 i、j、k、m、n,它們一般用於表示整形;c、d、e、s 它們一般用於字符型。
- 實例變量前需要用一個下滑線 '_'來修飾,首單詞小寫,其余的首字母大寫
- 如:$_userType = new UserType() 。
7、全局變量
- 全局變量應該用前綴 'g'來修飾。如 :global $gTest 。
- 超全局變量 $GLOBALS['gTest2'] = '' 。
8、常量和全局常量
- 常量不能以 '$' 開頭。
- PHP常量是通過define()函數進行定義。
- 使用constant()函數獲取常量值。
- 使用defined()函數判斷常量是否定義。
- 使用get_defined_constants()獲取所有當前已經定義的常量。
- PHP中常用預定義常量。如:
1、__FILE__ 程序文件名 2、__LINE__ 程序所在行數 3、PHP_VERSION PHP程序版本 4、PHP_OS PHP解析器的操作系統 5、TRUE 真值True 6、FALSE 假值False 7、NULL null值 8、E_ERROR 指向最近的錯誤處 9、E_WARNING 指向最近的警告處 10、E_PARSE 解析語法有潛在問題處 11、NOTICE 發生異常,但不一定是錯誤處 錯誤調試常量,了解更多查看error_reporting()函數
- 命名應該全部使用大寫字母表示,用下滑線'—'來進行詞的分割。如:
define('APP_VERSION', '1.1.0'); difine('APP_NAME', 'BRES');
9、靜態變量
- 靜態變量應該使用前綴 's' 來修飾。如:static $sName= '' 。
10、函數的命名
- 所有字母小寫,多個單詞之間用下滑線 '—' 分割。如:
public function get_ip(){ ip = $_SERVER['REMOTE_ADDR'] ?? '0.0.0.0'; if (getenv('HTTP_CLIENT_IP') && strcasecmp(getenv('HTTP_CLIENT_IP'), 'unknown')) { $ip = getenv('HTTO_CLIENT_IP'); } elseif (getenv('HTTP_X_FORWARDED_FOR') && strcasecmp(getenv('HTTP_X_FORWARDED_FOR'), 'unknown')) { $ip = getenv('HTTP_X_FORWARDED_FOR'); } elseif(getenv('REMOTE_ADDR') && strcasecmp(getenv('REMOTE_ADDR'), 'unknown')) { $ip = getenv('REMOTE_ADDR'); } elseif(isset($_SERVER['REMOTE_ADDR']) && $_SERVER['REMOTE_ADDR'] && strcasecmp($_SERVER['REMOTE_ADDR'], 'unknown')) { $ip = $_SERVER['REMOTE_ADDR']; } //正則匹配IP 7~15位 $res = preg_math('/[\d\.]{7,15}/',$ip,$ips)?$ips[0]:''; return $res; }
11、以上的各種命名規則,可以組合一起來使用,如:
class Example{ static $msValue = ""; //該參數既是類屬性,又是靜態變量 global $gmTst; //聲明靜態全局變量 }
PHP 標准規范 PSR(PHP Standard Recommendations )參考地址