<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                魔術方法(魔術函數 概念:PHP 將所有以 \_\_(兩個下劃線)開頭的類方法保留為魔術方法。所以在定義類方法時,除了上述魔術方法,建議不要以 \_\_ 為前綴。 分別為: __construct(): 應用筆記:如果子類中定義了構造函數則不會隱式調用其父類的構造函數。要執行父類的構造函數,需要在子類的構造函數中調用**parent::\_\_construct()**。如果子類沒有定義構造函數則會如同一個普通的類方法一樣從父類繼承(假如沒有被定義為 private 的話)。 __destruct(): 析構函數會在到某個對象的所有引用都被刪除或者當對象被顯式銷毀時執行。 和構造函數一樣,父類的析構函數不會被引擎暗中調用。要執行父類的析構函數,必須在子類的析構函數體中顯式調用**parent::\_\_destruct()**。此外也和構造函數一樣,子類如果自己沒有定義析構函數則會繼承父類的。 析構函數即使在使用exit()終止腳本運行時也會被調用。在析構函數中調用exit()將會中止其余關閉操作的運行。 應用筆記: 1.析構函數在腳本關閉時調用,此時所有的 HTTP 頭信息已經發出。腳本關閉時的工作目錄有可能和在 SAPI(如 apache)中時不同。 2.試圖在析構函數(在腳本終止時被調用)中拋出一個異常會導致致命錯誤。 __call(),在對象中調用一個不可訪問方法時,__call()會被調用。 __callStatic(), 在靜態上下文中調用一個不可訪問方法時會被調用 __get(),在給不可訪問屬性賦值時,__get() 會被調用 __set(), 在給不可訪問屬性賦值時,__set() 會被調用 __isset(), 當對不可訪問屬性調用 isset() 或 empty() 時,__isset() 會被調用。 __unset(),當對不可訪問屬性調用 unset() 時,__unset() 會被調用。 __sleep(): 方法常用于提交未提交的數據,或類似的清理操作。同時,如果有一些很大的對象,但不需要全部保存,這個功能就很好用 __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(); } } ?> ~~~ __toString(), 方法用于一個類被當成字符串時回應。例如 echo $obj; 應該顯示些什么。此方法必須返回一個字符串,否則將發出一條 E_RECOVERABLE_ERROR 級別的致命錯誤。 ~~~ <?php // Declare a simple class class TestClass { public $foo; public function __construct($foo) { $this->foo = $foo; } public function __toString() { return $this->foo; } } $class = new TestClass('Hello'); echo $class; //輸出 Hello ?> ~~~ __invoke(),當嘗試以調用函數的方式調用一個對象時,方法會被自動調用 ~~~ <?php class CallableClass { function __invoke($x) { var_dump($x); } } $obj = new CallableClass; $obj(5); var_dump(is_callable($obj)); // is_callable — 檢測參數是否為合法的可調用結構 ?> 以上會輸出: int(5) bool(true) ~~~ __set_state(), __clone() 和 對象復制。當復制完成時,如果定義了 __clone() 方法,則新創建的對象(復制生成的對象)中的 __clone() 方法會被調用,可用于修改屬性的值(如果有必要的話) __debugInfo() 等方法在 PHP 中被稱為"魔術方法"(Magic methods) __construct():
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看