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。