欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

php對象工廠類完整示例

 更新時間:2018年08月09日 12:09:34   作者:flynetcn  
這篇文章主要介紹了php對象工廠類,涉及php參數(shù)獲取、數(shù)組使用、對象創(chuàng)建等相關操作技巧,需要的朋友可以參考下

本文實例講述了php對象工廠類。分享給大家供大家參考,具體如下:

<?php
/**
 * 對象工廠
 * @author flynetcn
 */
class ObjectFactory
{
  private static $objSet = array();
  /**
   * 清空工廠中的對象
   */
  public function clear()
  {
    self::$objSet = array();
  }
  /**
   * 在工廠中創(chuàng)建對象并將其返回
   * 參數(shù)格式:$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;
  }
}

更多關于PHP相關內容感興趣的讀者可查看本站專題:《php面向對象程序設計入門教程》、《PHP基本語法入門教程》、《PHP運算與運算符用法總結》、《PHP網絡編程技巧總結》、《PHP數(shù)組(Array)操作技巧大全》、《php字符串(string)用法總結》、《php+mysql數(shù)據庫操作入門教程》及《php常見數(shù)據庫操作技巧匯總

希望本文所述對大家PHP程序設計有所幫助。

相關文章

最新評論