## 变量(`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 此处省略若干行
}
~~~
## 命名空间