//类的静态属性
//类的静态属性和其他属性不一样
//单例模式第0步
//单例模式第一步不允许进行new操作
//在类中开放一个借口进行实例化对象
// 单例模式第3步,加判断,判断该类的实例是否已经存在.
class mysql{
public $rand;
static public $flag=null;
static function ins(){
if(self::$flag){
self::$flag=new mysql;
return self::$flag;
}
return self::$flag;
}
final protected function __construct(){
$this->rand=rand(1000,9999);
}
}
$m1=mysql::ins();
$m2=mysql::ins();
class my extends mysql{
public $name;
}
//$m1=new my();不能被new了
//$m2=new my();不能被new了
print_r($m1);
print_r($m2);
if($m1===$m2){
echo '是同一个对象';
}
else{
echo "不是一个对象";
}
// 问题:子类继承时,允许同名方法覆盖父类的同名方法,且权限越来越宽松.
// 某个方法,继承可以,但是不允许重写.
// final,关键字.可以修饰类名 方法名 修饰类名的时候不能继承 修饰方法的时候不能重写
//还有可能通过克隆得倒两个对象
?>



