首页 | 资讯动态 | linux基础 | 系统管理 | 网络管理 | 编程开发 | linux数据库 | linux相关 | linux认证 | 下载中心 | 专题
oklinux
 系统管理:中文环境 系统管理 桌面应用 内核技术 Linux基础:安装配置 常用命令 经验技巧 软件应用 Linux数据库:Mysql POSTGRE
 网络管理:网络安全 网络应用 Linux服务器 编程开发:PHP CC++ Python Perl SHELL 嵌入式开发 | PHP基础 PHP技巧 PHP应用 PHP文摘
 首页 linux资讯动态 Linux专题 | 其他Unix Linux解决方案 硬件相关 Linux认证 企业应用 Apache | 相关下载:软路由 参考手册 开发工具
 → 当前位置:首页>编程开发>php>php技巧>正文

还是说php实现singleton模式

OKLinux www.oklinux.cn 2006-09-10 来源:oklinux收集整理 会员收藏 游客收藏

 

这天考虑用php来singleton一下,看到一篇比较全面的总结 -- singleton模式的几种实现.其中总结的php5的实现:

PLAIN TEXTPHP:

class MyClass
  {
     private static $instance;
 
      public static function singleton()
     {
         if (!isset(self::$instance)) {
             $c = __CLASS__;
             self::$instance = new $c;
          }
        return self::$instance;
 
     }
  }

这段代码拿来使用,不会太爽,因为一般都会继承自MyClass,而$c = __CLASS__;获取的始终是基类的类名,不可用。只能考虑找其它实现方法。


接着俺开始查看文章中的函数方式实现的singleton,实现的很不错,缺点是类被实例化时不能带参数,这里贴上俺的版本:

PLAIN TEXTPHP:

function getObj() {
    static $obj = array();
    $args = func_get_args();
 
    if(empty($args))
        return null;
 
    $clazz = $args[0];
    if(!is_object($obj[$clazz])) {
        $cnt = count($args);
        if($cnt> 1) {
            for($i = 1, $s = ''; $i <$cnt; $i++)
                $s[] = '$args[' . $i . ']';
            eval('$obj[$clazz] = new $clazz(' . join(',', $s) . ');');
        } else {
            $obj[$clazz] = new $clazz;
        }
    }
 
    return $obj[$clazz];
}

在php5下可以很爽的调用:

PLAIN TEXTPHP:

getObj('MyClass', $param1, $param2)->myMethod();

以前的幼稚版:
单子模式(SINGLETON)的简单实现

http://www.ooso.net/index.php/archives/182

上一篇:PHP实现简单线性回归之数据研究工具   下一篇:用php或js获取图片大小,高宽尺寸
收藏于收藏夹】 【评论】 【推荐】 【投稿】 【打印】 【关闭

相关文章
·PHPUnit袖珍指南之自动测试
·PHP程序与服务器端通讯的方法
·PHP应用技巧:通过SMTP发送电子邮件
·如何利用PHP操纵Oracle LOB类型数据
·PHP应用技巧:如何将代码中的通知和警告删
·PHP编程技巧:看实例学正则表达式
·用PHP在Linux上读取输入并进行文件操作
·PHP程序员的优化调试技术和技巧
·PHP程序与服务器端通讯方法小结
·PHP用流方式制作缩略图
发表评论
密码: 匿名评论
评论内容:(不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规。)
站内搜索
阅读排行榜
·PHP 应用程序配置模式
·用 PHP 读取文件的正确方
·PHP面向对象编程快速入门
·用 PHP V4 开发的代码迁移
·五个常见 PHP 数据库问题
·利用单元测试对PHP 代码进
·如何用PHP调用自己编写的C
·使用PHP 快速生成Flash 动
·用Pear加速PHP程序开发
·用PHP在Linux上读取输入并
最新文章
·用Pear加速PHP程序开发
·Debian下php环境的简单搭
·PHP+Oracle(OCI) 初步
·PHP用流方式制作缩略图
·PHP程序与服务器端通讯方
·PHP程序员的优化调试技术
·用PHP在Linux上读取输入并
·PHP应用技巧:如何将代码
·PHP应用技巧:通过SMTP发
·如何利用PHP操纵Oracle LO
·PHP程序与服务器端通讯的
·PHPUnit袖珍指南之自动测
·PHP编程技巧:看实例学正
·用 PHP 读取文件的正确方
·使用PHP 快速生成Flash 动

设为首页 - 加入收藏 - 版权声明 - 广告服务 - 关于我们 - 联系我们 - 友情连接
Copyright © 2007 All rights reserved OKLinux.Cn 版权所有
合作联系 QQ:18743986 Email:arlan8005#163.com