最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

PHP中構(gòu)造函數(shù)和析構(gòu)函數(shù)解析

 更新時間:2014年10月10日 10:42:06   投稿:junjie  
這篇文章主要介紹了PHP中構(gòu)造函數(shù)和析構(gòu)函數(shù)解析,本文用代碼實例講解了PHP中構(gòu)造函數(shù)和析構(gòu)函數(shù),需要的朋友可以參考下

構(gòu)造函數(shù)

void __construct ([ mixed $args [, $... ]] )

PHP 5 允行開發(fā)者在一個類中定義一個方法作為構(gòu)造函數(shù)。具有構(gòu)造函數(shù)的類會在每次創(chuàng)建新對象時先調(diào)用此方法,所以非常適合在使用對象之前做一些初始化工作。

Note: 如果子類中定義了構(gòu)造函數(shù)則不會隱式調(diào)用其父類的構(gòu)造函數(shù)。要執(zhí)行父類的構(gòu)造函數(shù),需要在子類的構(gòu)造函數(shù)中調(diào)用 parent::__construct()。如果子類沒有定義構(gòu)造函數(shù)則會如同一個普通的類方法一樣從父類繼承(假如沒有被定義為 private 的話)。

Example#1使用新標(biāo)準(zhǔn)的構(gòu)造函數(shù)

復(fù)制代碼 代碼如下:

<?php
class BaseClass {
   function __construct() {
       print "In BaseClass constructor\n";
   }
}
 
class SubClass extends BaseClass {
   function __construct() {
       parent::__construct();
       print "In SubClass constructor\n";
   }
}
 
class OtherSubClass extends BaseClass {
    // inherits BaseClass's constructor
}
 
// In BaseClass constructor
$obj = new BaseClass();
 
// In BaseClass constructor
// In SubClass constructor
$obj = new SubClass();
 
// In BaseClass constructor
$obj = new OtherSubClass();
?>

output:
In BaseClass constructor
In BaseClass constructor
In SubClass constructor
In BaseClass constructor

為了實現(xiàn)向后兼容性,如果 PHP 5 在類中找不到 __construct() 函數(shù)并且也沒有從父類繼承一個的話,它就會嘗試尋找舊式的構(gòu)造函數(shù),也就是和類同名的函數(shù)。因此唯一會產(chǎn)生兼容性問題的情況是:類中已有一個名為 __construct() 的方法卻被用于其它用途時。

與其它方法不同,當(dāng) __construct() 被與父類 __construct() 具有不同參數(shù)的方法覆蓋時,PHP 不會產(chǎn)生一個 E_STRICT 錯誤信息。

自 PHP 5.3.3 起,在命名空間中,與類名同名的方法不再作為構(gòu)造函數(shù)。這一改變不影響不在命名空間中的類。

Example#2 Constructors in namespaced classes

復(fù)制代碼 代碼如下:

<?php
namespace Foo;
class Bar {
    public function Bar() {
        // treated as constructor in PHP 5.3.0-5.3.2
        // treated as regular method as of PHP 5.3.3
    }
}
?>

析構(gòu)函數(shù)

void __destruct(void)

PHP 5 引入了析構(gòu)函數(shù)的概念,這類似于其它面向?qū)ο蟮恼Z言,如 C++。析構(gòu)函數(shù)會在到某個對象的所有引用都被刪除或者當(dāng)對象被顯式銷毀時執(zhí)行。

Example#3析構(gòu)函數(shù)示例

復(fù)制代碼 代碼如下:

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

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

$obj = new MyDestructableClass();
?>

和構(gòu)造函數(shù)一樣,父類的析構(gòu)函數(shù)不會被引擎暗中調(diào)用。要執(zhí)行父類的析構(gòu)函數(shù),必須在子類的析構(gòu)函數(shù)體中顯式調(diào)用 parent::__destruct()。此外也和構(gòu)造函數(shù)一樣,子類如果自己沒有定義析構(gòu)函數(shù)則會繼承父類的。

析構(gòu)函數(shù)即使在使用 exit() 終止腳本運行時也會被調(diào)用。在析構(gòu)函數(shù)中調(diào)用 exit() 將會中止其余關(guān)閉操作的運行。

Note:
析構(gòu)函數(shù)在腳本關(guān)閉時調(diào)用,此時所有的 HTTP 頭信息已經(jīng)發(fā)出。腳本關(guān)閉時的工作目錄有可能和在 SAPI(如 apache)中時不同。
Note:
試圖在析構(gòu)函數(shù)(在腳本終止時被調(diào)用)中拋出一個異常會導(dǎo)致致命錯誤。

相關(guān)文章

  • PHP 常用數(shù)組內(nèi)部函數(shù)(Array Functions)介紹

    PHP 常用數(shù)組內(nèi)部函數(shù)(Array Functions)介紹

    本章節(jié)我們還要學(xué)習(xí)一些其它常用的有關(guān)數(shù)組的內(nèi)部函數(shù):count,sizeof、sort、asort、ksort等等,感興趣的朋友可以參考下哈,希望對大家有所幫助
    2013-06-06
  • php實現(xiàn)網(wǎng)站頂踩功能的完整前端代碼

    php實現(xiàn)網(wǎng)站頂踩功能的完整前端代碼

    這篇文章主要介紹了php實現(xiàn)網(wǎng)站頂踩功能的完整前端代碼的相關(guān)資料,需要的朋友可以參考下
    2015-07-07
  • PHP return語句的另一個作用

    PHP return語句的另一個作用

    這篇文章主要介紹了PHP return語句的另一個作用,在bbPress的代碼中看到的一個奇葩使用方法,需要的朋友可以參考下
    2014-07-07
  • PHP中for循環(huán)與foreach的區(qū)別

    PHP中for循環(huán)與foreach的區(qū)別

    本文主要介紹了php中for循環(huán)與foreach的區(qū)別,具有很好的參考價值。下面跟著小編一起來看下吧
    2017-03-03
  • php生成器詳細講解

    php生成器詳細講解

    生成器提供了一種更容易的方法來實現(xiàn)簡單的對象迭代,相比較定義類實現(xiàn)?Iterator?接口的方式,性能開銷和復(fù)雜性大大降低。生成器允許你在?foreach?代碼塊中寫代碼來迭代一組數(shù)據(jù)而不需要在內(nèi)存中創(chuàng)建一個數(shù)組
    2022-11-11
  • Php注入點構(gòu)造代碼

    Php注入點構(gòu)造代碼

    php注入代碼,方便注入測試
    2008-06-06
  • php讀取遠程gzip壓縮網(wǎng)頁的方法

    php讀取遠程gzip壓縮網(wǎng)頁的方法

    這篇文章主要介紹了php讀取遠程gzip壓縮網(wǎng)頁的方法,當(dāng)站點使用gzip壓縮時,使用常規(guī)的遠程獲取方法會得到亂碼結(jié)果,使用本文方法即可解決這個問題,需要的朋友可以參考下
    2014-12-12
  • PHP應(yīng)用跨時區(qū)功能的實現(xiàn)方法

    PHP應(yīng)用跨時區(qū)功能的實現(xiàn)方法

    今天小編就為大家分享一篇關(guān)于PHP應(yīng)用跨時區(qū)功能的實現(xiàn)方法,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-03-03
  • FastCGI 進程意外退出造成500錯誤

    FastCGI 進程意外退出造成500錯誤

    這篇文章主要介紹了FastCGI 進程意外退出造成500錯誤的相關(guān)資料,需要的朋友可以參考下
    2015-07-07
  • 深入php常用函數(shù)的使用匯總

    深入php常用函數(shù)的使用匯總

    本篇文章是對php常用函數(shù)的使用進行了詳細的總結(jié)與分析,需要的朋友參考下
    2013-06-06

最新評論

郎溪县| 太康县| 桂东县| 沙湾县| 齐齐哈尔市| 左贡县| 肇东市| 福州市| 钟山县| 察隅县| 昌乐县| 达拉特旗| 西城区| 资兴市| 体育| 泽库县| 阳春市| 仙游县| 常熟市| 镇坪县| 康定县| 扎兰屯市| 茌平县| 丰顺县| 石河子市| 河北省| 昌平区| 汉中市| 和田县| 霍城县| 肥乡县| 尼勒克县| 巩义市| 布拖县| 宁乡县| 获嘉县| 云和县| 塔河县| 来凤县| 阿拉善左旗| 周口市|