首頁 > 後端開發 > PHP問題 > php中建構函式和析構函式有什麼差別

php中建構函式和析構函式有什麼差別

王林
發布: 2023-03-01 18:54:01
原創
4607 人瀏覽過

php中建構函式與析構函式的差別是:1、建構子可以接收參數,能夠在建立物件時賦值給物件屬性,析構函式不能帶參數;2、建立物件時呼叫建構子函數,析構函數是在銷毀物件時自動呼叫的。

php中建構函式和析構函式有什麼差別

差異分析:

#建構子

具有建構函式的類別會在每次建立物件時先呼叫此方法。

void __construct ([ mixed $args [, $... ]] )
登入後複製
  • 建構子可以接收參數,能夠在建立物件時賦值給物件屬性

  • 建構子可以呼叫類別方法或其他函式

  • 建構子可以呼叫其他類別的建構子

#範例

<?php
class BaseClass {
   function __construct() {
       print "In BaseClass constructor\n";
   }
}

class SubClass extends BaseClass {
   function __construct() {
       parent::__construct();
       print "In SubClass constructor\n";
   }
}

$obj = new BaseClass();
$obj = new SubClass();
?>
登入後複製

析構函數

void __destruct ( void )
登入後複製
  • 析構函數是在銷毀物件時,自動調用,不能顯示的呼叫

  • 析構函數不能帶參數

範例:

<?php
class MyDestructableClass {
   function __construct() {
       print "In constructor\n";
       $this->name = "MyDestructableClass";
   }

   function __destruct() {
       print "Destroying " . $this->name . "\n";
   }
}

$obj = new MyDestructableClass();
?>
登入後複製

如果您想要了解更多相關知識,請造訪php中文網

以上是php中建構函式和析構函式有什麼差別的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板