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

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

王林
王林原創
2020-06-30 11:28:344578瀏覽

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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn