讨论数量: 
            
            
    
             static function  const  static $abc 都是大量使用的,尤其在 Model 层,因为应用静态的变量、方法,常量不是特定的对象,而是类。
例如:消息有N多个频道,const SYSTEM   = 'system';const NOTICE    = 'notice';
例如:定义频道的名称
public static $typeName = [
        self::SYSTEM        => '系统',
        self::NOTICE        => '提醒',
    ];例如:给用户发送通知
public static function forUser($user_id,$title,$content){
  'user_id' => ..,
  'at_time' => date(..)
}我的理解是,常用方法,程序中有多个类经常调用的方法发,之间又没有继承关系的,使用 静态,常驻内存,不需要每次实例化,方便调用速度快,因为是经常调用,所以占用内存也没关系。
需要按需加载,不会被多个类调用的方法,使用频次少,使用 动态,线程结束后会被 gc 自动清理。
实例是单独的内存,实例是属性集,属性集可能也有单独的内存划分,但是静态的不一样,他们是固定的一块内存划分, php官方的这个示例也说明了
class sample_class
{
    static $var = 0;
    public function func_having_static_var($x = NULL)
    {
        if ($x === NULL)
        { return self::$var; }
        self::$var = $x;
    }
}
$a = new sample_class();
$b = new sample_class();
echo $a->func_having_static_var()."\n";
echo $b->func_having_static_var()."\n";
// this will output (as expected):
//  0
//  0
$a->func_having_static_var(3);
echo $a->func_having_static_var()."\n"; // 3
echo $b->func_having_static_var()."\n"; // 3 
           hard 的个人博客
 hard 的个人博客
         
             
             
             
                     
                     
             
             
             
             
             
             
             
           
           关于 LearnKu
                关于 LearnKu
               
                     
                     
                     粤公网安备 44030502004330号
 粤公网安备 44030502004330号 
 
推荐文章: