国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > PHP > 正文

php中構造函數與析構函數詳解

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

在php中構造函數與析構函數都是使用在類中的,下面我來給大家詳細介紹關于在php類中使用構造函數與析構函數的方法,有需要了解的朋友可參考參考.

析構函數

php析構函數的作用剛好和構造函數相反,構造函數是在對象實例化時自動執行,而析構函數在對象被銷毀時自動執行.

默認情況下,php僅釋放對象屬性所占用的內存,并不銷毀對象相關的資源,而利用析構函數在使用一個對象之后執行代碼來清除內存,并將對象從內存中銷毀.析構函數__destruct()結構形式如下:

實例代碼如下:

  1. function __destruct(){ 
  2.     /* class initialization code */ 
  3. }  

析構函數是由系統自動調用,不能帶參數.

實例代碼如下:

  1. <?php  
  2.  class des{ 
  3.   function __destruct(){ 
  4.    echo "運行結束,執行析構函數"
  5.   } 
  6.  } 
  7.  $p=new des(); /* 實例化類 */ 
  8.  $sum=0; 
  9.  for($i=0;$i<10;$i++){ 
  10.   $sum=$sum+$i
  11.   echo $sum ."<br>"
  12.  } 
  13. ?> 

析構函數的調用

php如何調用析構函數?當php腳本不再與對象相關時將調用析構函數.如果要明確地銷毀一個對象調用析構函數,可以給指向對象的變量不分配任何值,通常將變量賦值為NULL或者用unset()函數.

實例代碼如下:

  1. <?php  
  2.  class des{ 
  3.   function __destruct(){ 
  4.    echo "對象被銷毀,執行析構函數<br>"
  5.   } 
  6.  } 
  7.  $p=new des(); /* 實例化類 */ 
  8.  echo "程序開始<br>"
  9.  unset($p); /* 銷毀變量$p */ 
  10.  echo "程序結束"
  11. ?> 

構造函數

我們在使用類的過程中,有時需要立即為實例化對象的多個字段父子,如果通過手工,會帶來很多不可預測的問題,而如果在對象創建過程中自動執行,則會帶來很多方便.

php構造函數作用就是當類被實例化時,會自動執行的函數,又稱為構造函數.構造函數的聲明和其它函數一樣,知識構造函數的名稱是“__construct”固定的名稱,其結構形式如下:

實例代碼如下:

  1. function __construct([argument1,argument2,argument3]){ 
  2.     /* class initialization code */ 

實例代碼如下:

  1. <?php  
  2.  class user{ 
  3.   public $name
  4.   private $password
  5.   private $login
  6.   public function __construct($name,$password){ 
  7.    $this->name=$name
  8.    $this->password=$password
  9.    $this->login=time(); 
  10.   } 
  11.   function getlogin(){ 
  12.    return(date('M d,Y',$this->login)); 
  13.   } 
  14.  } 
  15.  $user=new user('Marry','888888'); 
  16.  echo "用戶名: "$user->name. "<br>"
  17.  print("訪問時間"$user->getlogin()); 
  18. ?> 

調用父類構造函數

構造函數可以被子類調用,php調用父類構造函數時必須使用parent關鍵字,否則不會自動調用.

實例代碼如下:

  1. <?php  
  2.  class task1{ 
  3.   public function __construct(){ 
  4.    echo "today is Monday""<br>"
  5.   } 
  6.  } 
  7.  class task2 extends task1{ 
  8.   function __construct(){ 
  9.    parent::__construct(); /* 調用父類構造函數 */ 
  10.    echo "I must work!"
  11.   } 
  12.  } 
  13.  new task2; 
  14. ?> 

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 新津县| 济源市| 横峰县| 黄浦区| 金山区| 平昌县| 扬中市| 新疆| 栾城县| 出国| 崇仁县| 贞丰县| 红原县| 淮南市| 彭泽县| 蒙城县| 调兵山市| 南汇区| 涿州市| 津市市| 清丰县| 嘉黎县| 金寨县| 汝阳县| 搜索| 平泉县| 南皮县| 高邑县| 榆中县| 东台市| 淮北市| 昌图县| 宁武县| 高淳县| 陈巴尔虎旗| 龙海市| 双流县| 富锦市| 晋宁县| 永德县| 侯马市|