≡
  • 网络编程
  • 数据库
  • CMS技巧
  • 软件编程
  • PHP笔记
  • JavaScript
  • MySQL
位置:首页 > 网络编程 > PHP笔记

PHP多例模式的简单示例

人气:1 时间:2021-01-13

这篇文章主要为大家详细介绍了PHP多例模式的简单示例,具有一定的参考价值,可以用来参考一下。

感兴趣的小伙伴,下面一起跟随512笔记的小玲来看看吧!

学习java就知道设计模式中有多例模式:

1、多例类可以有多个实例
2、多例类必须能够自我创建并管理自己的实例,并向外界提供自己的实例。

大家都知道PHP单例模式,却很少说PHP多例模式,下面是在wikipedia上看到的PHP多例模式的例子:

 

代码如下:


<?php
/*   512笔记 www.512Pic.com   */
 
abstract class Multiton { 
    private static $instances = array(); 
    public static function getInstance() { 
$key = get_called_class() . serialize(func_get_args()); 
if (!isset(self::$instances[$key])) { 
$rc = new ReflectionClass(get_called_class()); 
self::$instances[$key] = $rc->newInstanceArgs(func_get_args()); 
} 
return self::$instances[$key]; 
    } 
} 

class Hello extends Multiton { 
public function __construct($string = 'World') { 
echo "Hello $string\n"; 
} 
} 

class GoodBye extends Multiton { 
public function __construct($string = 'my', $string2 = 'darling') { 
echo "Goodbye $string $string2\n"; 
} 
} 

$a = Hello::getInstance('World'); 
$b = Hello::getInstance('bob'); 
// $a !== $b 

$c = Hello::getInstance('World'); 
// $a === $c 

$d = GoodBye::getInstance(); 
$e = GoodBye::getInstance(); 
// $d === $e 

$f = GoodBye::getInstance('your'); 
// $d !== $f 
?>

 

可以看到PHP多例模式需要getInstance()传递关键值,对于给定的关键值,PHP多例模式只会存在唯一的对象实例,PHP多例模式节省内存,确保同一个对象的多个实例不发生冲突。

本文来自:http://www.512pic.com/173/15167-0.html

注:关于PHP多例模式的简单示例的内容就先介绍到这里,更多相关文章的可以留意512笔记的其他信息。

关键词:

您可能感兴趣的文章

上一篇:Sphinx创建全文检索索引的简单示例
下一篇:PHPDocument 代码注释规范用法
热门文章
  • PHP 写入WRITE编码为UTF8的文件示例
  • PHP 中文字符串截取函数示例:支持gb2312,gbk,big
  • PHP语言基础(标记、注释、变量、数组、常量、函数)示例
  • PHP 简单留言板的制作示例
  • php 获取短网址的实现方法
  • 解决Fatal error: Call to undefined function mb_convert_encoding() in错误问题
  • PHP 使用文件方式导入导出整个MYSQL数据库的实现方法
  • php 生成迅雷链接的简单示例
  • PHP 通用分页类的简单示例
  • php 获取MYSQL错误的简单示例
  • 最新文章
    • PHP多例模式的简单示例
    • PHP利用Sphinx对索引搜索的简单示例
    • php中eclipse 用空格替换 tab键的简单示例
    • php中var_dump方法用法示例
    • 163邮件用phpmailer发送的简单示例
    • php操作MySQL执行数据库查询用法示例
    • 解决ob_get_contents(),ob_end_clean(),ob_start(),的具体用法的问题
    • PHP遍历文件目录与清除目录中文件的简单示例
    • 解决php框架codeigniter中如何使用框架的session的问题
    • php 获取本地IP代码的简单示例

512笔记收集整理一些常用的php代码,JS代码,数据库mysql等技术文章。