91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

php的魔法方式都有什么

發布時間:2020-07-16 11:29:42 來源:億速云 閱讀:124 作者:Leah 欄目:編程語言

這期內容當中小編將會給大家帶來有關php的魔法方式都有什么,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

在面向對象編程中,PHP提供了一系列的魔術方法,這些魔術方法為編程提供了很多便利。PHP中的魔術方法通常以__(兩個下劃線)開始,并且不需要顯示的調用而是由某種特定的條件出發。

__construct(), __destruct(), __call(), __callStatic(), __get(), __set(), __isset(), __unset(), __sleep(),__wakeup(), __toString(), __invoke(), __set_state(), __clone() 和 __debugInfo() 等方法在 PHP 中被稱為魔術方法(Magic methods)。

注:在命名自己的類方法時不能使用這些方法名,除非是想使用其魔術功能。

注意:PHP 將所有以 __(兩個下劃線)開頭的類方法保留為魔術方法。所以在定義類方法時,除了上述魔術方法,建議不要以 __ 為前綴。

__sleep() 和 __wakeup()

public __sleep ( void ) : array
__wakeup ( void ) : void

serialize() 函數會檢查類中是否存在一個魔術方法 __sleep()。如果存在,該方法會先被調用,然后才執行序列化操作。此功能可以用于清理對象,并返回一個包含對象中所有應被序列化的變量名稱的數組。如果該方法未返回任何內容,則 NULL 被序列化,并產生一個 E_NOTICE 級別的錯誤。

Note:

__sleep() 不能返回父類的私有成員的名字。這樣做會產生一個 E_NOTICE 級別的錯誤。可以用 Serializable 接口來替代。

__sleep() 方法常用于提交未提交的數據,或類似的清理操作。同時,如果有一些很大的對象,但不需要全部保存,這個功能就很好用。

與之相反,unserialize() 會檢查是否存在一個 __wakeup() 方法。如果存在,則會先調用 __wakeup 方法,預先準備對象需要的資源。

__wakeup() 經常用在反序列化操作中,例如重新建立數據庫連接,或執行其它初始化操作。

<?php
class Connection 
{
    protected $link;
    private $server, $username, $password, $db;
    
    public function __construct($server, $username, $password, $db)
    {
        $this->server = $server;
        $this->username = $username;
        $this->password = $password;
        $this->db = $db;
        $this->connect();
    }
    
    private function connect()
    {
        $this->link = mysql_connect($this->server, $this->username, $this->password);
        mysql_select_db($this->db, $this->link);
    }
    
    public function __sleep()
    {
        return array('server', 'username', 'password', 'db');
    }
    
    public function __wakeup()
    {
        $this->connect();
    }
}
?>

上述就是小編為大家分享的php的魔法方式都有什么了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

php
AI

雷波县| 拉萨市| 白水县| 滦平县| 南宁市| 宜黄县| 怀来县| 叙永县| 伊金霍洛旗| 肥城市| 永济市| 孝昌县| 五台县| 池州市| 荆门市| 酒泉市| 手机| 郴州市| 永胜县| 新巴尔虎左旗| 安塞县| 赞皇县| 行唐县| 墨玉县| 乌兰察布市| 新巴尔虎右旗| 商城县| 新余市| 江西省| 巴彦县| 丰镇市| 陕西省| 东阿县| 迁安市| 林周县| 永修县| 陵川县| 扶绥县| 司法| 济南市| 聂拉木县|