• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

PHP单例模式

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

/***********************************************/
/******************单列模式*********************/
/***********************************************/


1.1 单列模式

单例模式: 一个类只能有一个实例

构造函数 非public

三大原则:

1: 构造函数 需要标记为非public(只能被其自身实例化)

2: 拥有一个保存类的实例的静态成员变量 $_instance

3: 拥有一个访问这个实例的公共的静态方法

 

/**********************************************************/

<?php

class inStance{

// 保存类实例的静态变量

private static $_instance;

// 构造函数 声明 为 非public

private function __construct(){

}

// 访问这个实例的 公共的 静态方法

public static function getInstance(){

// 判断 类是否被实例

if (!(self::$_instance instanceof self)) {

// 静态变量 = 实例化类本身

self::$_instance = new self();

}

return self::$_instance;
}

// 自己定义一个方法

public function test(){

echo "test";

}

// 防止用户复制 对象实例

public function __clone(){

// trigger_error() 函数创建用户定义的错误消息

trigger_error('Clone is not allow' ,E_USER_ERROR);

}

}

// 这个写法会出错,因为构造方法被声明为private

$test = new Example;

// 下面将得到inStance类的单例对象

$test = inStance::getInstance();

$test->test();

// 复制对象将导致一个E_USER_ERROR.

$test_clone = clone $test;

?>


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
PHP链接MYSQL发布时间:2022-07-10
下一篇:
CentOS 7解压安装PHP7.1.21发布时间:2022-07-10
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap