## 變量(`variable`)
變量命名以駝峰式命名規則并且首字母小寫,如:`$name`、`$colorName`等是正確的命名規則,像:`$Name`,`$ColorName`,`$colorname`,`$color_name`等是不推薦的。
## 常量(`define`)
常量命名以全大寫英文,多個單詞之間用下劃線( _ )隔開,定義為私有常量請在前后加上下劃線( _ ),如:`USER_NAME`、`_SYS_NAME_`等是正確的命名規則,像`__USER_NAME`(雙下劃線開頭一般是系統內置常量)、`__LINE__`(以雙下劃線開頭和結尾一般是系統內置魔術變量)、`$_COLOR`(一般是系統超全局變量)、`user_name`、`UserName`等是不推薦的。
## 函數(`function`)
函數命名以全英文小寫,多個單詞之間用下劃線( _ )隔開,需要注意單詞之間順序(動詞在前,名詞在后),如:`function get_color(){...}`、`function get_user_info($name){...}`等是正確的命名規則,像:`function getcolor(){...}`、`function get_userinfo(){...}`等是不推薦的
## 類(`class`)
* ### 屬性
屬性命名以駝峰式命名規則并且首字母小寫,
* ### 方法
方法命名以駝峰式命名規則并且首字母小寫,需要注意單詞之間順序(動詞在前,名詞在后),請盡量加上修飾符(`public`、`protected`、`private`)如:`public function getName(){...}`、`protected function updateUserInfo(){...}`、`private function saveData($data){...}`,像:`function getname(){...}`、`private function set_name($name){...}`等是不推薦的。有一些常見的方法名,如果你沒有必須需求,請不要在定義這些方法名的時候改變它的意義:
~~~
/**
* 實例化當前類(別名:make)
*
* @param mixed $args
* @return self
*/
public static function newInstance($args){
//todo 一般情況下代碼是這樣的
return new self($args);
//或
return new static($args);
}
~~~
~~~
/**
* 類實例
*
* @var array
*/
private static $instances = array();
/**
* 根據標識獲取類實例
*
* @param string $flag
* @return mixed
*/
public static function getInstance($flag = null){
//todo 一般情況下代碼是這樣的
$instances = self::$instances;
if(!isset($instances[$flag])){
$instances[$flag] = new self();
}
return $instances[$flag];
}
~~~
~~~
/**
* 根據變量類型生成類實例
* @param mixed $var
*/
public static function valueOf($var){
//todo 此處省略若干行
}
~~~
## 命名空間