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