成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

PHP 5克隆函數應用淺析

開發 后端
本文向您介紹PHP 5克隆函數的簡單應用,包括clone()函數的調用及對象通過clone關鍵詞復制時程序的執行流程剖析等。

毫無疑問,PHP5的推出對網絡應用程序的發展產生了深遠意義。這還不僅僅是因為它對于PHP4高度的向后兼容性。

當然,PHP5數據包具備強大的對象模型和一整套新型函數與庫,更不用說它其中便攜式異常機制,這一機制賦予了它有效處理錯誤和異常事件的能力。 通過PHP在服務器上寫入文件

當然,當我們使用“函數”這一詞時,我們所談論的并不僅是通常所指的執行指定任務(如從文件中讀取數據或為所供變量應用過濾器)的那一概念。我們所指的還包括一些神奇功能(比如PHP 5 的克隆函數),即那些不具備默認的確定執行任務且可以被PHP引擎自動調用以響應某些特定事件的函數。

開發對象指向型PHP應用程序時,_set(),_get()和_call()方法就種神奇函數的典型代表,但是還有其他一些神奇函數值得開發員深入分析。在本文里,我們將集中討論“_clone()”方法,顧名思義,使用“clone”PHP關鍵詞時可以從幕后調用這一方法。

復制對象的時候從幕后觸發函數

就像我們在之前提到的,使用clone關鍵詞的時候,_clone()函數(克隆函數)會被自動援引。為了簡潔起見,現在我們只談論用來創建指定對象單獨副本的clone關鍵詞,而不談及創建引用。  用PHP把HTML添加到多個文件中

現在,返回_clone函數,可以給它一個明確的任務指示。為了實現這一點,我們看看下面的代碼:

  1.  class User   
  2.   {  
  3.  
  4.   // constructor (not implemented)  
  5.  
  6.   public function _construct(){}  
  7.  
  8.   // set undeclared property in a restrictive way  
  9.  
  10.   public function __set($property$value)  
  11.  
  12.   {  
  13.  
  14.   if (in_array($propertyarray('fname''lname''email')) === TRUE)  
  15.  
  16.   {  
  17.  
  18.   $this->$property = $value;  
  19.  
  20.   }  
  21.  
  22.   }  
  23.  
  24.   // get undeclared property  
  25.  
  26.   public function __get($property)  
  27.  
  28.   {  
  29.  
  30.   if (isset($this->$property))  
  31.  
  32.   {  
  33.  
  34.   return $this->$property;  
  35.  
  36.   }  
  37.  
  38.   }  
  39.  
  40.   // single point to fetch user data  
  41.  
  42.   public function __call($method$args)  
  43.  
  44.   {  
  45.  
  46.   if ($method === 'fetch' AND emptyempty($args) === FALSE)  
  47.  
  48.   {  
  49.  
  50.   return $this->$args[0];  
  51.  
  52.   }  
  53.  
  54.   }  
  55.  
  56.   // implement __clone( method  
  57.  
  58.   public function __clone()  
  59.  
  60.   {  
  61.  
  62.   echo 'Cloning user object.';  
  63.  
  64.   }  
  65.  
  66.   } 

在這個特定示例中,我們要給上述的_clone方法一個不太顯眼的任務,以便幫助你更好地理解,但是要相信該函數可以用來執行更為復雜的任務。不管本文中所演示的_clone函數是如何簡單,復制簡單的User類實例時,該函數非常有助于向我們展示PHP引擎是怎樣調用函數的。

復制對象的時候調用Clone方法

要明白PHP解釋程序是如何調用_clone()函數最好的方法是觀察一個演示如何復制簡單User類實例的具體示例。

我們制作了一個小型腳本,該腳本使用克隆函數中的clone關鍵字來復制一個用戶對象從而觸發有關_clone()方法的調用。該腳本的定義如下所示:

  1.   $user = new User();   
  2.   $user->fname = 'Alejandro';  
  3.  
  4.   $user->lname = 'Gervasio';  
  5.  
  6.   $user->email = 'alejandro@mydomain.com';  
  7.  
  8.   // display user data  
  9.  
  10.   echo 'First Name : ' . $user->fetch('fname') . ' Last Name : ' . $user->fetch('lname') .
     
    ' Email : ' . $user->fetch('email');  
  11.  
  12.   /*  
  13.  
  14.   displays the following  
  15.  
  16.   First Name : Alejandro Last Name : Gervasio Email : alejandro@mydomain.com  
  17.  
  18.   */ 
  19.  
  20.   // clone user object  
  21.  
  22.   $newuser = clone $user;  
  23.  
  24.   /*  
  25.  
  26.   displays the following  
  27.  
  28.   Cloning user object.  
  29.  
  30.   */ 

這段代碼易于編寫,也易于理解。正如你所看到的,一旦腳本在User類中生成一個對象并創建一些未申明的屬性,它就會復制這個對象。這個進程會自動調用相關的_clone()方法。

這一具體方法支持更復雜更有益的任務執行。因此,如果PHP5中附帶的這些神奇函數已經引起你的注意,你或許想通過使用這些函數改善自己的編程技能了。這樣的嘗試將極具啟發性。

結語

本文中,我們討論了如何實施和使用_clone()函數。對象通過clone關鍵詞復制時,該函數會被自動引用;這就是PHP 5克隆函數的強大之處。

 

【編輯推薦】

  1. PHP 5.3.0發布 新增命名空間等多項特性
  2. 升級PHP 5的理由:PHP 4和PHP 5性能對比
  3. PHP 5.0中多態性的實現方案淺析
  4. PHP 5 數據對象 (PDO) 抽象層與 Oracle
  5. PHP 5.0 中的對象重載技術研究
責任編輯:佚名 來源: IT專家網
相關推薦

2010-11-03 10:31:51

PHP魔術方法

2009-12-11 10:59:48

PHP函數extrac

2012-12-07 16:40:23

TechEd2012克隆DC

2009-01-16 14:08:42

PHP開發Web應用執行效率

2009-11-24 16:28:41

PHP5魔術函數

2009-11-17 16:16:59

PHP遞歸函數

2009-12-02 10:32:02

PHP語法解析函數

2009-11-26 15:23:24

PHP函數ereg()

2022-05-23 15:57:18

加密貨幣黑客網絡攻擊

2009-09-16 10:43:22

PHP正則表達式函數

2009-12-08 09:51:10

PHP intval函

2009-09-16 16:01:57

PHP正則表達式正則表達式的應用

2009-07-31 16:25:29

C#回調函數API應用

2009-03-23 10:53:00

PHP5.3新特性PHP5.3PHP5

2009-12-10 17:09:42

PHP編碼轉換函數

2009-12-10 11:02:44

PHP函數eval()

2009-11-30 16:08:32

PHP addslas

2009-12-03 17:18:15

PHP strtoti

2009-12-07 17:05:36

PHP函數imaget

2011-08-29 17:27:47

HTML 5交互移動應用
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产成人99久久亚洲综合精品 | 欧美一区二区三区视频在线 | 久久精品久久久久久 | 国产一区二区三区四区 | 999热精品视频 | www.黄色片视频 | 国产精品免费一区二区三区四区 | 三区在线观看 | 91成人免费看片 | 中文字幕在线二区 | 欧美日一区二区 | 欧美成人a| 黑人巨大精品欧美一区二区免费 | 日韩免费一区二区 | 欧美日韩中文在线 | 欧美11一13sex性hd | 一本一道久久a久久精品综合 | 亚洲精品456 | 交专区videossex农村 | 综合色播 | 一级特黄网站 | 亚洲v区 | 美女一区二区在线观看 | 久久中文字幕一区 | 三级黄色片在线播放 | 国产一区二区三区四区三区四 | 99久久免费观看 | 欧美视频二区 | 久久免费视频网 | 欧美激情在线精品一区二区三区 | www.yw193.com| 在线观看www| 午夜精品一区 | 91亚洲国产成人久久精品网站 | 黄色免费观看网站 | 中日字幕大片在线播放 | 又黄又爽的网站 | 99精品99 | 一区二区三区精品在线视频 | 日韩精品一区二区三区在线播放 | 久久亚洲一区 |