首頁 後端開發 php教程 php 魔術方法的使用範例

php 魔術方法的使用範例

Jul 05, 2017 am 09:39 AM
php 使用 範例

一些在PHP叫魔術方法的函數,在這裡介紹一下:其實在一般的應用中,我們都需要用到他們! !

PHP5.0後,php物件導向提成更多方法,使得php更加的強大! !
一些在PHP叫魔術方法的函數,在這裡介紹一下:其實在一般的應用中,我們都需要用到他們! !

1.construct() 當實例化一個物件的時候,這個物件的這個方法首先被呼叫。
Java程式碼
class Test { function construct() { echo "before"; } } $t = new Test();
class Test { function construct() { echo "before"; } } $t = new Test();
輸出是:
start
我們知道php5物件模型和類別名稱相同的函數是類別的建構子,那麼如果我們同時定義建構子和construct()方法的話,php5會預設呼叫建構子而不會呼叫construct()函數,所以construct()作為類別的預設的建構子
2.destruct() 當刪除一個物件或物件操作終止的時候,呼叫該方法。
Java程式碼
class Test { function destruct() { echo "end"; } } $t = new Test();將會輸出end
class Test { function destruct() { echo "end"; } } $t = new Test();將會輸出end
我們就可以在物件操作結束的時候進行釋放資源之類的操作
3.get() 當試圖讀取一個不存在的屬性的時候被呼叫。

如果試圖讀取一個物件並不存在的屬性的時候,PHP就會給予錯誤訊息。如果在類別裡加入get方法,並且我們可以用這個函數實作類似java中反射的各種操作。
Java程式碼
class Test { public function get($key) { echo $key . " 不存在"; } } $t = new Test(); echo $t->name; 就會輸出: name 不存在
class Test { public function get($key) { echo $key . " 不存在"; } } $t = new Test(); echo $t->name; 就會輸出:name 不存在
4.set() 當試圖向一個不存在的屬性寫入值的時候被呼叫。
Java程式碼
class Test { public function set($key,$value) { echo '對'.$key . "附值".$value; } } $t = new Test() ; $t->name = "aninggo"; 就會輸出:對name 附值aninggo
class Test { public function set($key,$value) { echo '對'.$key . "附加價值" .$value; } } $t = new Test(); $t->name = "aninggo"; 就會輸出:對name 附值aninggo

5.call() 當試圖當呼叫一個物件並不存在的方法時,呼叫該方法。
Java程式碼
class Test { public function call($Key, $Args) { echo "您要呼叫的{$Key} 方法不存在。你傳入的參數是:" . print_r( $Args, true); } } $t = new Test(); $t->getName(aning,go);
class Test { public function call($Key, $Args) { echo "您要呼叫的{$Key} 方法不存在。 #程式將會輸出:
Java程式碼
您要呼叫的getName 方法不存在。參數是:Array
(
[0] => aning
[1] => go
)
您要呼叫的 getName 方法不存在。參數是:Array
(
[0] => aning
[1] => go
)

6.toString() 當列印一個物件的時候被呼叫 這個方法類似於java的toString方法,當我們直接列印物件的時候回呼叫這個函數
class Test { public function toString() {
return "列印Test" ; } } $t = new Test(); echo $t; 運行echo $t;的時候,就會呼叫$t->toString();從而輸出
打印Test

7.clone() 當物件被複製時,被呼叫class Test { public function clone() { echo "我複製了!"; } }$t = new Test(); $t1 = clone $t;程式輸出:我被克隆了!

以上是php 魔術方法的使用範例的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱門文章

倉庫:如何復興隊友
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
兩個點博物館:所有展覽以及在哪裡可以找到它們
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱門文章

倉庫:如何復興隊友
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
兩個點博物館:所有展覽以及在哪裡可以找到它們
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱門文章標籤

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

CakePHP 日期和時間 CakePHP 日期和時間 Sep 10, 2024 pm 05:27 PM

CakePHP 日期和時間

適用於 Ubuntu 和 Debian 的 PHP 8.4 安裝和升級指南 適用於 Ubuntu 和 Debian 的 PHP 8.4 安裝和升級指南 Dec 24, 2024 pm 04:42 PM

適用於 Ubuntu 和 Debian 的 PHP 8.4 安裝和升級指南

CakePHP 檔案上傳 CakePHP 檔案上傳 Sep 10, 2024 pm 05:27 PM

CakePHP 檔案上傳

CakePHP 路由 CakePHP 路由 Sep 10, 2024 pm 05:25 PM

CakePHP 路由

討論 CakePHP 討論 CakePHP Sep 10, 2024 pm 05:28 PM

討論 CakePHP

CakePHP 專案配置 CakePHP 專案配置 Sep 10, 2024 pm 05:25 PM

CakePHP 專案配置

CakePHP 快速指南 CakePHP 快速指南 Sep 10, 2024 pm 05:27 PM

CakePHP 快速指南

如何設定 Visual Studio Code (VS Code) 進行 PHP 開發 如何設定 Visual Studio Code (VS Code) 進行 PHP 開發 Dec 20, 2024 am 11:31 AM

如何設定 Visual Studio Code (VS Code) 進行 PHP 開發

See all articles