静态方法和静态属性的最佳实践(单例模式)

来源:互联网 发布:淘宝哪里有卖微信号的 编辑:程序博客网 时间:2024/05/18 22:11
<?phpheader('content-type:text/html;charset=utf-8');/*要求,不管你怎么创建mysql对象,从类的设计层面上,保证只能有一个对象*/class mysql{//定义两个成员属性//这个表示数据库的连接private $mysql_link = null;//这个属性表示mysql的一个对象实例private static $instance = null;//将构造函数设置为private,防止用户通过构造函数来创建对象private function __construct($host,$user,$pwd){$this->mysql_link = mysql_connect($host,$user,$pwd);}//防止克隆private function __clone(){}public static function instance($host,$user,$pwd){//如果self::$instance == null说明目前没有一个对象实例//instanceof用于确定一个php变量是否属于某一类class的实例//self::$instance instanceof self//上面的这句话:意思//1.self::$instance表示一个变量//2.instanceof是一个类型运算符,他的作用是判断全面的变量是否是后面这个类的对象实例//3.self表示当前这个类if(!self::$instance instanceof self){//创建,通过new self($host,$user,$pwd)//对象实例,只能在类的内部去使用self::$instance = new self($host,$user,$pwd);}return self::$instance;}}$mysql1 = mysql::instance('localhost','root','root');$mysql2 = mysql::instance('localhost','root','root');echo '<pre>';var_dump($mysql1,$mysql2);

原创粉丝点击