当前位置:  编程技术>php
本页文章导读:
    ▪PHP多例模式 - mckee1990      学习java就知道设计模式中有多例模式:1、多例类可以有多个实例2、多例类必须能够自我创建并管理自己的实例,并向外界提供自己的实例。大家都知道PHP单例模式,却很少说PHP多例模式,下.........
    ▪php设计模式之单例、多例设计模式 - H&K             单例(Singleton)模式和不常见的多例(Multiton)模式控制着应用程序中类的数量。如模式名称,单例只能实例化一次,只有一个对象,多例模式可以多次实例化。      .........
    ▪PHP变量名区分大小写,函数名不区分大小写 - mckee1990      PHP变量名区分大小写,函数名不区分大小写,经常被新手忽视的小细节,测试如下.PHP变量名区分大小写测试:<?php $aaa = "phpddt.com"; $AAA = "PHPDDT.COM"; echo $aaa.'-'.$AAA; //phpddt.com-PHPDDT.COM?&g.........

[1]PHP多例模式 - mckee1990
    来源:    发布时间: 2013-11-07

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

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

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

<?php
abstract class Multiton {
/** by http://www.phpddt.com */
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
?>

 

本文链接:http://www.cnblogs.com/phpddt/p/3141661.html,转载请注明。


    
[2]php设计模式之单例、多例设计模式 - H&K
    来源:    发布时间: 2013-11-07

       单例(Singleton)模式和不常见的多例(Multiton)模式控制着应用程序中类的数量。如模式名称,单例只能实例化一次,只有一个对象,多例模式可以多次实例化。

       基于Singleton的特性,我们经常用Singleton配置应用程序并定义应用程序中可能随时访问的变量。但有时并不推荐使用Singleton,因为它生成了一个全局状态且

该单一根对象没有封装任何系统功能。多数情况下,会使单元测试和调试变得困难。读者根据情况自行决定。

  代码示例:

<?php
class SingletonExample{
private function __construct(){}//防止直接实例化

public static function getInstance(){ //不与任何对象有关联
static $instance=null; //调用此函数的所有代码共享该变量,不必要让其是类的静态变量
if($instance==null){
$instance=new SingletonExample();
}
return $instance;
}
}
$obj1=SingletonExample::getInstance();
$obj2=SingletonExample::getInstance();
var_dump($obj1===$obj2);// true 是同一个实例
?>

Multiton与singleton相似,不同的是后者需要getInstance()函数传递关键值。

对于给定的关键值只会存在唯一的对象实例,如果有多个节点,每个节点拥有唯一的表识符,且各个节点在某单次执行(如cms里的节点)可能出现多次,那么就可以用Multiton模式实现这些节点啊,Multiton节省内存,并确保同一个对象的多个实例不发生冲突.

示例:

1 <?php
2 class MultitonExample{
3 private function __construct(){}//防止直接实例化
4
5 public static function getInstance($key){
6 static $instance=array();
7 if(!array_key_exists($key,$instance)){
8 $instance[$key]=new SingletonExample();
9 }
10 return $instance($key);
11 }
12
13 };
14 ?>

 参考资料:php和mysql专家编程

 

本文链接:http://www.cnblogs.com/HKUI/p/3140644.html,转载请注明。


    
[3]PHP变量名区分大小写,函数名不区分大小写 - mckee1990
    来源:    发布时间: 2013-11-07

PHP变量名区分大小写,函数名不区分大小写,经常被新手忽视的小细节,测试如下.

PHP变量名区分大小写测试:

<?php
$aaa = "phpddt.com";
$AAA = "PHPDDT.COM";
echo $aaa.'-'.$AAA; //phpddt.com-PHPDDT.COM
?>

PHP函数名不区分大小写测试:

<?php
function bbb(){
echo 'abc';
}
function BBB(){
echo "Abc";
}
?>

上面这段代码会报错:( ! ) Fatal error: Cannot redeclare BBB()

本文链接:http://www.cnblogs.com/phpddt/p/3139567.html,转载请注明。


    
最新技术文章:
▪PHP函数microtime()时间戳的定义与用法
▪PHP单一入口之apache配置内容
▪PHP数组排序方法总结(收藏)
▪php数组排序方法大全(脚本学堂整理奉献)
▪php数组排序的几个函数(附实例)
▪php二维数组排序(实例)
▪php根据键值对二维数组排序的小例子
▪php验证码(附截图)
▪php数组长度的获取方法(三个实例)
▪php获取数组长度的方法举例
▪判断php数组维度(php数组长度)的方法
▪php获取图片的exif信息的示例代码
▪PHP 数组key长度对性能的影响实例分析
▪php函数指定默认值的方法示例
▪php提交表单到当前页面、提交表单后页面重定...
▪php四舍五入的三种实现方法
▪php获得数组长度(元素个数)的方法
▪php日期函数的简单示例代码
▪php数学函数的简单示例代码
▪php字符串函数的简单示例代码
▪php文件下载代码(多浏览器兼容、支持中文文...
▪php实现文件下载、支持中文文件名的示例代码...
▪php文件下载(防止中文文件名乱码)的示例代码
▪解决PHP文件下载时中文文件名乱码的问题
▪php数组去重(一维、二维数组去重)的简单示例
▪php小数点后取两位的三种实现方法
▪php Redis 队列服务的简单示例
▪PHP导出excel时数字变为科学计数的解决方法
▪PHP数组根据值获取Key的简单示例
▪php数组去重的函数代码示例
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3