欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

php基礎(chǔ)知識(shí):類(lèi)與對(duì)象(3) 構(gòu)造函數(shù)和析構(gòu)函數(shù)

 更新時(shí)間:2006年12月13日 00:00:00   作者:  
構(gòu)造函數(shù)
PHP 5 允行開(kāi)發(fā)者在一個(gè)類(lèi)中定義一個(gè)方法作為構(gòu)造函數(shù)。具有構(gòu)造函數(shù)的類(lèi)會(huì)在每次創(chuàng)建對(duì)象時(shí)先調(diào)用此方法,所以非常適合在使用對(duì)象之前做一些初始化工作。 
注意: 
如果子類(lèi)中定義了構(gòu)造函數(shù)則不會(huì)暗中調(diào)用其父類(lèi)的構(gòu)造函數(shù)。要執(zhí)行父類(lèi)的構(gòu)造函數(shù),需要在子類(lèi)的構(gòu)造函數(shù)中調(diào)用 parent::__construct()。(??和其他語(yǔ)言明顯不同??)

例10.8.使用新標(biāo)準(zhǔn)的構(gòu)造函數(shù)
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();

為了實(shí)現(xiàn)向后兼容性,如果 PHP 5 在類(lèi)中找不到 __construct() 函數(shù),它就會(huì)嘗試尋找舊式的構(gòu)造函數(shù),也就是和類(lèi)同名的函數(shù)。因此唯一會(huì)產(chǎn)生兼容性問(wèn)題的情況是:類(lèi)中已有一個(gè)名為 __construct() 的方法,但它卻又不是構(gòu)造函數(shù)。 

析構(gòu)函數(shù)
PHP 5 引入了析構(gòu)函數(shù)的概念,這類(lèi)似于其它面向?qū)ο蟮恼Z(yǔ)言,如 C++。析構(gòu)函數(shù)會(huì)在到某個(gè)對(duì)象的所有引用都被刪除或者當(dāng)對(duì)象被顯式銷(xiāo)毀時(shí)執(zhí)行。 
例10.9.析構(gòu)函數(shù)示例
class MyDestructableClass {
  function __construct() {
      print "In constructor\n";
      $this->name = "MyDestructableClass";
  }

  function __destruct() {
      print "Destroying " . $this->name . "\n";
  }
}
$obj = new MyDestructableClass();
和構(gòu)造函數(shù)一樣,父類(lèi)的析構(gòu)函數(shù)不會(huì)被引擎暗中調(diào)用。要執(zhí)行父類(lèi)的析構(gòu)函數(shù),必須在子類(lèi)的析構(gòu)函數(shù)體中顯式調(diào)用 parent::__destruct()。 (??和其他語(yǔ)言明顯不同??)
注意: 
析構(gòu)函數(shù)在腳本關(guān)閉時(shí)調(diào)用,此時(shí)所有的頭信息已經(jīng)發(fā)出。 
注意: 
試圖在析構(gòu)函數(shù)中拋出一個(gè)異常會(huì)導(dǎo)致致命錯(cuò)誤。

相關(guān)文章

最新評(píng)論