background image

PHP 入门:PHP 单例模式应用说明

单例模式的要点有三个:
一是某个类只能有一个实例;
二是它必须自行创建这个实例;
三是它必须自行向整个系统提供这个实例。
代码如下:
 
<?php 

/* 单例模式举例,其要点如下: 

* 1. $_instance 

 

必须声明为静态的私有变量

* 2. 构造函数和克隆函数必须声明为私有的,

 

这是为了防止外部程序 new 类从而失去单例

 

模式的意义
* 3. getInstance()方法必须声明为公有的,

 

必须调用此方法以返回唯一实例的一个引用

* 4. ::

 

操作符只能访问静态变量或静态函数

* 5. PHP 的单例模式是相对而言的,因为 PHP 的解释运行机制使得每个 PHP 页面被解释执

 

行后,所有的相关资源都会被回收。
* 也就是说,PHP 在语言级别上没有办法让某个对象常驻内存。在 PHP 中,所有的变量都

 

是页面级的,无论是全局变量,
* 还是类的静态成员,都会在页面执行完毕后被清空,结果会重新建立新的对象,这样也
就完全失去了 Singleton

 

的意义。

* 不过,在实际应用中同一个页面中可能会存在多个业务逻辑,这时单例模式就起到了很重
要的作用,

 

有效的避免了重复

* new 对象(注: new 对象会消耗内存资源)这么一个行为,所以我们说 PHP 的单例模式是相

 

对而言的

*/

 

class

 People 

static

 

private

 

$_instance

 = NULL; 

public

 

$height

 = ''; 

public

 

$age

 = ''; 

private

 

function

 __construct() 

$this

->height = '185'; 

$this

->age = 25; 

private

 

function

 __clone() 

//do something