PHP 魔術方法:__construct __destruct

WBOY
發布: 2016-08-08 09:33:07
原創
2141 人瀏覽過

從php5以後的版本,類別就可以使用魔術方法了。 php規定以兩個底線(__)開頭的方法都保留為魔術方法,所以建議大家函數名最好不用__開 頭,除非是為了重載已有的魔術方法。

目前php已有的魔術方法有 __construct,__destruct,__call,__get,__set,__isset,__unset,__sleep,__wakeup,__toString,__set_state 和 __clone。

本節將講講__construct,__destruct:

__construct()  - 在每次建立新物件時先呼叫此方法

__destruct()   - 物件的所有參考都被刪除或當物件被明確銷毀時執行

<?php

/**
 * 清晰的认识__construct() __destruct
 */
class Example {

    public static $link;
    //在类实例化的时候自动加载__construct这个方法
    public function __construct($localhost, $username, $password, $db) {
        self::$link = mysql_connect($localhost, $username, $password);
        if (mysql_errno()) {
            die('错误:' . mysql_error());
        }
        mysql_set_charset('utf8');
        mysql_select_db($db);
    }

    /**
     * 通过__construct链接好数据库然后执行sql语句......
     */
    
    //当类需要被删除或者销毁这个类的时候自动加载__destruct这个方法
    public function __destruct() {
        echo '<pre class="brush:php;toolbar:false">';
        var_dump(self::$link);
        mysql_close(self::$link);
        var_dump(self::$link);
    }

}

$mysql = new Example('localhost', 'root', 'root', 'test');
登入後複製

結果:

resource(2) of type (mysql link)
resource(2) of type (Unknown)
登入後複製


以上就介紹了PHP 魔術方法:__construct __destruct,包含了PHP 魔術方法的內容,希望對PHP教學有興趣的朋友有幫助。

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!