php对象工厂类完整示例

开发技术 作者: 2024-08-19 08:45:01
这篇文章主要介绍了php对象工厂类,涉及php参数获取、数组使用、对象创建等相关操作技巧,需要的朋友可以参考下

@H_301_0@本文实例讲述了PHP对象工厂类。分享给大家供大家参考,具体如下:


<div class="jb51code">
<pre class="brush:PHP;">
<?PHP
/**

  • 对象工厂
  • @author flynetcn
    */
    class ObjectFactory
    {
    private static $objSet = array();
    /**
    • 清空工厂中的对象
      */
      public function clear()
      {
      self::$objSet = array();
      }
      /**
    • 在工厂中创建对象并将其返回
    • 参数格式:$class_name,$class_param1,$class_param2,...
      */
      public static function create()
      {
      $argc = func_num_args();
      if ($argc <= 0) {
      throw new Exception('params error',1);
      }
      $args = func_get_args();
      $class_name = array_shift($args);
      $params = $args;
      if (!$params) {
      $class_sign = $class_name;
      } else {
      $param_sign = serialize($params);
      if (strlen($param_sign) > 100) {
      $param_sign = md5($param_sign);
      }
      $class_sign = $class_name.'@'.$param_sign;
      }
      if (isset(self::$objSet[$class_sign])) {
      return self::$objSet[$class_sign];
      }
      $ref = new ReflectionClass($class_name);
      if ($ref->hasMethod('__construct') && !empty($params)) {
      $obj = $ref->newInstanceArgs($params);
      } else {
      $obj = $ref->newInstance();
      }
      self::$objSet[$class_sign] = $obj;
      return $obj;
      }
      }
@H_301_0@更多关于PHP相关内容感兴趣的读者可查看本站专题:《》、《》、《》、《》、《》、《》、《》及《》

@H_301_0@希望本文所述对大家PHP程序设计有所帮助。

原创声明
本站部分文章基于互联网的整理,我们会把真正“有用/优质”的文章整理提供给各位开发者。本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
本文链接:http://www.jiecseo.com/news/show_64847.html
php 对象工厂类

本站采用系统自动发货方式,付款后即出现下载入口,如有疑问请咨询在线客服!

售后时间:早10点 - 晚11:30点

咨询售后客服

推荐精华