
PHP实现单件模式的几种方式
最后一种是提供一个singleton类,然后通过调用getInstance方法,可以为任何一个类生产出一个实例来。
发布日期:2021-09-20 08:07:36
浏览次数:15
分类:技术文章
本文共 1082 字,大约阅读时间需要 3 分钟。
下面是单件模式在PHP中的几种实现方法:
class Stat{
static $instance = NULL;
static function getInstance(){
if(self::$instance == NULL){
self::$instance = new Stat();
}
return self::$instance;
}
private function __construct(){
}
private function __clone(){
}
function sayHi(){
return "The Class is saying hi to u ";
}}echo Stat::getInstance()->sayHi();
这是一种最通常的方式,在一个getInstance方法中返回唯一的类实例。
对这里例子稍加修改,便可以产生一个通用的方法,只要叫道任何你想用到单件的类里,就可以了。
class Teacher{
function sayHi(){
return "The teacher smiling and said 'Hello '";
}
static function getInstance(){
static $instance;
if(!isset($instance)){
$c = __CLASS__;
$instance = new $c;
}
return $instance;
}}echo Teacher::getInstance()->sayHi();
最后一种是提供一个singleton类,然后通过调用getInstance方法,可以为任何一个类生产出一个实例来。
class singleton{
function getInstance($class){
static $instances = array();
if(!array_key_exists($class,$instances)){
$instances[$class] = &new $class;
}
$instance = $instances[$class];
return $instance;
}}class People{
function sayHi(){
return 'Hello i am a people?';
}}echo "
";echo singleton::getInstance('People')->sayHi();
转载地址:https://blog.csdn.net/caiyiii/article/details/17078247 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
留言是一种美德,欢迎回访!
[***.207.175.100]2023年02月07日 17时35分37秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
最新文章
NuSMV 学习笔记
2020-01-25 20:18:54
大疆Android Sample Code中遇到的问题及解决方案
2020-01-25 20:18:54
Azure中使用Ubuntu创建Apache服务器
2020-01-25 20:18:54
DataContract方式做对象的XML序列化可能出现的BUG
2020-01-25 20:18:53
WPF/Silverlight 终极加速方案(无反射绑定)
2020-01-25 20:18:53
MPLAB IDE 编译器文件归类整理
2020-01-25 20:18:53
基于SSM框架的简易的分页功能——包含maven项目的搭建
2020-01-25 20:18:53
WCF服务端消息监测
2020-01-25 20:18:53
UVAOJ 350 基础题 伪随机数 数论
2020-01-25 20:18:52
UVAOJ 10061(未完结。续待)
2020-01-25 20:18:52
C# Aes加密算法
2020-01-25 20:18:52
UVAOJ 10110 基础题 灯光 数论
2020-01-25 20:18:51
UVAOJ 550 基础题 移位乘法 数论
2020-01-25 20:18:51
UVAOJ 568 基础题 阶乘 数论
2020-01-25 20:18:52
UVAOJ 408 基础题 均匀的生成器 数论
2020-01-25 20:18:52
UVAOJ 10387 基础题 台球 几何计算题
2020-01-25 20:18:51
UVAOJ 10112 基础题 Myacm三角形 几何计算
2020-01-25 20:18:51
UVAOJ 575 基础题 斜二进制数 数论
2020-01-25 20:18:51
UVAOJ 375 基础题 内接圆和等腰三角形 几何计算
2020-01-25 20:18:50
方便编程 头文件
2020-01-25 20:18:51