亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 語言 > PHP > 正文

php析構函數的簡單使用說明

2024-09-04 11:42:33
字體:
來源:轉載
供稿:網友

與構造函數相反,在PHP5中,可以定義一個名為__destruct()的函數,稱之為PHP5析構函數,PHP將在對象在內存中被銷毀前調用析構函數,使對象在徹底消失之前完成一些工作。對象在銷毀一般可以通過賦值為null實現。

隨著面向對象編程的普遍展開,面向對象展現了其中很多有趣的問題。相信很多初學者學習php面向對象時會接觸兩個函數,構造函數與析構函數。構造函數似乎用的更多,析構函數用的較少(相對初學者有限編程經驗而言,筆者也是如此。)在功能上,構造函數在創建對象時調用,析構函數在對象銷毀時調用,都無需特意去調用,一頭一尾,倒也是前后照應。

析構函數常常處理的事務是一些資源釋放的工作,比如前面有fopen(),這里調用fclose(),前面有imagecreatefromjepg(),這里調用imagedestory(),這些都是些常見的例子,當然不局限于此。我們大可將其當做一個普通的會在對象銷毀或者腳本執行完畢的時候執行的函數。

啰嗦那么多,還是盡早提出今天的主要的問題:

  1. <?php 
  2. class Test{ 
  3.  public function __destruct(){ 
  4.   echo "執行析構函數"
  5.  } 
  6.  } 
  7. $test1=new Test; 
  8. $test2=$test3=$test1
  9. unset($test1); 
  10. echo "<hr/>"

這段腳本執行結果是什么?

在回答這個問題之前,回看我上面標示的幾個字。我們可以理所應當的認為在輸出分隔線前 unset($test1) ,這樣會調用析構函數,輸出文字,至于 $test2,$test3 應該會在腳本執行完畢調用析構函數。也就是說,在分割線上面,會輸出一段文字,分隔線下面會輸出兩段文字。 在這個時候,大可以小驕傲一下,畢竟自己懂得什么時候調用析構函數。但現實真是如此么?我們可以看一下執行結果。

嘿,他喵的,怎么就輸出了一句啊???

其實我們忽略了一個重要的前提條件,就是對象的賦值默認的是引用賦值。這一點很多人沒有注意到,希望初學者能多多注意一下。

那么既然是引用賦值,結合我們對普通變量的理解,我們很快想到,三個變量名指向同一塊存儲地址。那么既然如此的話, unset($test1) 起到的是什么作用???破壞變量指向存儲地址還是破壞存儲地址存儲的內容?

了解unset()函數用法的請直覺跳過本段。

想著這蛋疼的問題,莫不如去查看手冊。

同樣是傳遞引用,毀掉的僅僅是變量名指向存儲地址。結合平常unset()的作用,我們可以這么描述,當多個變量名或者對象名指向一塊存儲地址時,unset()函數的作用僅僅是銷毀變量名和存儲地址的指向而已,當僅有一個變量名或者對象名,unset銷毀的是指定的存儲地址上的內容。

我們可以想象真實的存儲內容是一臺電視。多個人(多個變量名或對象名)在看一臺電視。unset()后,一個人不看了,離開了,電視還開著。當只有一個人看電視的時候,unset()后,人離開的時候,要把電視關了 ,也就是釋放占用的存儲空間。對這部分內容感興趣的話也可以看一下《php 遞歸函數的三種實現方式》。

好的,回歸主題。 unset($test1) 后, 原來的對象還在。當輸出分割線后,腳本執行完畢,調用析構函數。 因為對象只有一個,調用析構函數也只調用一次。輸出如上結果也就理所應當。

其他幾個相關的有意思的問題:在程序中調用析構函數的方法還有很多。無論是設置對象為null,還是false,其余的對象依舊不受影響。這和普通變量還是有區別的。(unset()函數的效果是一樣的)。有興趣的話可以試試。

另外說一個比較囧的事情:我們都知道構造函數可以使用__construct(),卻忽視了同名構造函數。所以,大家還是留心一下。

最后我們來看個例子:

  1. <?php  
  2. /*  
  3.  * Created on 2009-11-18  
  4.  *  
  5.  * To change the template for this generated file go to  
  6.  * Window - Preferences - PHPeclipse - PHP - Code Templates  
  7.  */ 
  8.  class student{  
  9.  //屬性  
  10.  private $no;  
  11.  private $name;  
  12.  private $gender;  
  13.  private $age;  
  14.    
  15.  private static $count=0;  
  16.  function __construct($pname)  
  17.  {  
  18.  $this->name = $pname;  
  19.  self::$count++;  
  20.  }  
  21.    
  22.  function __destruct()  
  23.  {  
  24.  self::$count--;  
  25.  }  
  26.    
  27.  static function get_count()  
  28.  {  
  29.  return self::$count;  
  30.  }  
  31.  }  
  32.    
  33.  $s1=new student("Tom");  
  34.  print(student::get_count());  
  35.    
  36.  $s2=new student("jerry");  
  37.  print(student::get_count());  
  38.    
  39.  $s1=NULL;  
  40.  print(student::get_count());  
  41.    
  42.  $s2=NULL;  
  43.  print(student::get_count());  
  44. ?>  

上面這段代碼就是PHP5析構函數的具體使用方法,希望對大家有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产999视频| 久久精品国产亚洲精品| 成人国产精品免费视频| 日本亚洲欧美成人| 日韩成人黄色av| 亚洲人成毛片在线播放| 欧洲午夜精品久久久| 日韩在线免费av| 日本午夜人人精品| 亚洲国产私拍精品国模在线观看| 国产成人精品电影| 国产精品久久久久久久app| 国产成人免费91av在线| 日韩av三级在线观看| 成人av在线天堂| 97香蕉超级碰碰久久免费软件| 亚洲国产精品va在看黑人| 国产日产亚洲精品| 一区二区三区无码高清视频| 欧美综合第一页| 午夜精品久久久99热福利| 一区二区三区久久精品| 91久久久久久久久久久久久| 国产精品av在线播放| 51ⅴ精品国产91久久久久久| 视频在线观看一区二区| 久久久久久九九九| 美日韩精品免费视频| 国产精品久久久久久久电影| 久久精品亚洲国产| 欧美性xxxxxx| 国产精品免费看久久久香蕉| 北条麻妃一区二区在线观看| 一区国产精品视频| 一道本无吗dⅴd在线播放一区| 欧美精品在线极品| 最近2019年手机中文字幕| 日韩性生活视频| 精品综合久久久久久97| 狠狠躁天天躁日日躁欧美| 一本一本久久a久久精品牛牛影视| 国产精品人人做人人爽| 欧美日韩激情小视频| 美乳少妇欧美精品| 美女国内精品自产拍在线播放| 欧美另类第一页| 欧美在线性爱视频| 欧美裸身视频免费观看| 欧美电影在线观看| www欧美日韩| 久久精品国产清自在天天线| 一区二区三区视频观看| 成人中文字幕在线观看| 精品视频久久久久久久| 欧美精品在线观看91| 欧美又大又粗又长| 国产在线观看一区二区三区| 国产一区二区三区18| 色视频www在线播放国产成人| 日韩中文字幕在线观看| 日韩欧美福利视频| 国产日产欧美a一级在线| 97国产suv精品一区二区62| 成人福利在线视频| 欧美日韩免费在线观看| 2019国产精品自在线拍国产不卡| 久久久久久亚洲精品中文字幕| 狠狠躁夜夜躁人人爽超碰91| 国产精品美女主播在线观看纯欲| 日韩精品在线视频| 91午夜在线播放| 日产日韩在线亚洲欧美| 欧美日本国产在线| 亚洲国产成人精品电影| 92看片淫黄大片欧美看国产片| 欧美黄色免费网站| 国产精品成人观看视频国产奇米| 欧美日韩精品在线| 98精品国产自产在线观看| 美女福利视频一区| 日韩av综合网站| 国产精品久久久久久婷婷天堂| 国产丝袜视频一区| 91久久精品国产91性色| 国产黑人绿帽在线第一区| 欧美高清视频免费观看| 国产精品欧美在线| 亚洲最大在线视频| 91丝袜美腿美女视频网站| 国内精品一区二区三区| 欧美香蕉大胸在线视频观看| 日韩精品中文在线观看| 久久精品色欧美aⅴ一区二区| 三级精品视频久久久久| 欧美放荡办公室videos4k| 精品视频9999| 一区二区三区久久精品| 国产精品丝袜久久久久久高清| 久久精品99无色码中文字幕| 亚洲精品第一页| 欧美久久精品午夜青青大伊人| 福利一区视频在线观看| 久久手机免费视频| 成人免费网视频| 91av在线免费观看| 久久久久久亚洲精品| 精品在线观看国产| 一二美女精品欧洲| 日韩欧美在线中文字幕| 精品久久久久久久中文字幕| 欧美华人在线视频| 亚洲精品美女久久| 庆余年2免费日韩剧观看大牛| 亚洲最大的网站| 宅男66日本亚洲欧美视频| 在线播放国产一区二区三区| 91在线观看免费观看| 日本一区二区不卡| 国产亚洲aⅴaaaaaa毛片| 国产视频精品xxxx| 欧美在线视频导航| www.日本久久久久com.| www.精品av.com| 成人精品视频在线| 国产精品一香蕉国产线看观看| 久久综合九色九九| 亚洲成人亚洲激情| 欧美性20hd另类| 成人中文字幕在线观看| 久久久噜噜噜久久久| 国产精品午夜视频| 91老司机在线| 欧美日韩国产第一页| 国内精品伊人久久| 欧美国产日韩一区二区三区| 亚洲精品成人久久| 欧美黄色性视频| 日本欧美在线视频| 91精品国产综合久久香蕉最新版| 国产成人综合一区二区三区| 91老司机在线| 亚洲免费视频网站| 国产美女精品视频免费观看| 亚洲电影免费观看高清完整版| 亚洲国产精品va在线看黑人动漫| 国产精品九九久久久久久久| 中文字幕亚洲欧美一区二区三区| 操日韩av在线电影| 亚洲天堂开心观看| 久久91精品国产91久久跳| 色综合久久中文字幕综合网小说| 欧美又大又硬又粗bbbbb| 欧洲成人在线视频| 亚洲视频在线免费观看| 亚洲电影免费观看高清完整版在线观看| 国产在线精品播放| 日本精品免费观看| 亚洲区中文字幕| 欧美激情在线有限公司| 亚洲人成电影网站色www| 国产xxx69麻豆国语对白| 欧美成人亚洲成人日韩成人| 亚洲xxxx做受欧美| 夜夜嗨av一区二区三区免费区|