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

php對象工廠類完整示例

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

本文實例講述了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;
  }
}

更多關(guān)于PHP相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《php面向?qū)ο蟪绦蛟O(shè)計入門教程》、《PHP基本語法入門教程》、《PHP運算與運算符用法總結(jié)》、《PHP網(wǎng)絡(luò)編程技巧總結(jié)》、《PHP數(shù)組(Array)操作技巧大全》、《php字符串(string)用法總結(jié)》、《php+mysql數(shù)據(jù)庫操作入門教程》及《php常見數(shù)據(jù)庫操作技巧匯總

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

相關(guān)文章

  • php中判斷一個字符串包含另一個字符串的方法

    php中判斷一個字符串包含另一個字符串的方法

    這篇文章主要為大家分享一下一個字符串包含另一個字符串的方法,主要使用了strpos或數(shù)組的方法實現(xiàn)
    2007-03-03
  • php實現(xiàn)自運行的實例詳解

    php實現(xiàn)自運行的實例詳解

    在本篇文章里小編給大家整理的是一篇關(guān)于php實現(xiàn)自運行的實例詳解內(nèi)容,有興趣的朋友們可以學(xué)習(xí)參考下。
    2021-07-07
  • php數(shù)組函數(shù)array_push()、array_pop()及array_shift()簡單用法示例

    php數(shù)組函數(shù)array_push()、array_pop()及array_shift()簡單用法示例

    這篇文章主要介紹了php數(shù)組函數(shù)array_push()、array_pop()及array_shift()簡單用法,結(jié)合實例形式分析了PHP數(shù)組函數(shù)array_push()、array_pop()及array_shift()操作數(shù)組的入棧、出棧、移除等相關(guān)實現(xiàn)技巧,需要的朋友可以參考下
    2020-01-01
  • php 無限極分類

    php 無限極分類

    至于添加刪除之類的功能我就不多寫了!仔細看看就知道這么用了. 難的是顯示方面 希望高手擴展一下! 這是類
    2008-03-03
  • PHP圖像處理之使用imagecolorallocate()函數(shù)設(shè)置顏色例子

    PHP圖像處理之使用imagecolorallocate()函數(shù)設(shè)置顏色例子

    這篇文章主要介紹了PHP圖像處理之使用imagecolorallocate()函數(shù)設(shè)置顏色例子,本文給出了十進制和十六進制2種設(shè)置顏色的方法,需要的朋友可以參考下
    2014-11-11
  • PHP抽象類與接口的區(qū)別詳解

    PHP抽象類與接口的區(qū)別詳解

    今天小編就為大家分享一篇關(guān)于PHP抽象類與接口的區(qū)別詳解,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-03-03
  • PHP基于openssl實現(xiàn)非對稱加密代碼實例

    PHP基于openssl實現(xiàn)非對稱加密代碼實例

    這篇文章主要介紹了PHP基于openssl實現(xiàn)非對稱加密代碼實例,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-06-06
  • php計算兩個坐標(經(jīng)度,緯度)之間距離的方法

    php計算兩個坐標(經(jīng)度,緯度)之間距離的方法

    這篇文章主要介紹了php計算兩個坐標(經(jīng)度,緯度)之間距離的方法,涉及php相關(guān)數(shù)學(xué)函數(shù)的使用技巧,非常具有實用價值,需要的朋友可以參考下
    2015-04-04
  • PHP命名空間與自動加載機制的基礎(chǔ)介紹

    PHP命名空間與自動加載機制的基礎(chǔ)介紹

    這篇文章主要給大家介紹了關(guān)于PHP命名空間與自動加載機制的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家學(xué)習(xí)或者使用PHP具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-08-08
  • php實現(xiàn)的簡單多進程服務(wù)器類完整示例

    php實現(xiàn)的簡單多進程服務(wù)器類完整示例

    這篇文章主要介紹了php實現(xiàn)的簡單多進程服務(wù)器類,結(jié)合完整實例形式分析了PHP多進程服務(wù)器數(shù)據(jù)傳輸、響應(yīng)、處理等相關(guān)操作技巧,需要的朋友可以參考下
    2020-02-02

最新評論