class singe{ static procted $ins = null ; //静态属性,存储实例化过后的对象 //防止用户New对象,将构造函数设为Procted protected function __construct(){ } static public function getIns(){ //如果ins中有值,说明已经实例过该对象,并存储在Ins中 if(self::$ins){ return self::$ins; } //否则,说明该类没有被实例化过,则new该对象 self::$ins = new self();
return self::$ins; } }
上述例子为单例模式,在此记录下self,this的用法。
在访问PHP类中的成员变量或方法时,如果被引用的变量或者方法被声明成const(定义常量)或者static(声明静态),那么就必须使用操作符::,
反之如果被引用的变量或者方法没有被声明成const或者static,那么就必须使用操作符->。
另外,如果从类的内部访问const或者static变量或者方法,那么就必须使用自引用的self,反之如果从类的内部访问不为const或者static变量或者方法,
那么就必须使用自引用的$this。