php中的魔術方法應用例項

2021-06-28 20:04:06 字數 1547 閱讀 1123

<?php  

//獲取當前類名

echo __class__ ;

//當前函式名(confirm

echo __function__ ;

//當前方法名 (bankcard::confirm)

echo __method__ ;

//在php5中,預定義了兩個函式「__get()」和「__set()」來獲取和賦值其屬性,__get()方法:這個方法用來獲取私有成員屬性值的,有乙個引數,引數傳入你要獲取的成員屬性的名稱,

//返回獲取的屬性值

class people

/**__set()方法:這個方法用來為私有成員屬性設定值的,有兩個引數,第乙個引數為你要為設定值的屬性名,第二個引數是要給屬性設定的值,沒有返回值。

這個方法同樣不用我們手工去呼叫,它也可以做成私有的,是在直接設定私有屬性值的時候自動呼叫的,同樣屬性私有的已經被封裝上 */

function __set($propetyname,$value)

//__isset()方法: isset()是測定變數是否設定用的函式,傳入乙個變數作為引數,如果傳入的變數存在則傳回true,否則傳回false。

function __isset($propertyname)

// 當在類外部使用unset()函式來刪除私有成員時自動呼叫的

";private function __unset($propertyname)

//__call() 當試圖呼叫乙個物件並不存在的方法時,呼叫該方法。

public function __call($method,$arg)

// 只有呼叫靜態方法的時候,靜態方法不存在才會呼叫這個方法

public static function __callstatic($method,$arg)

// __clone() 當物件被轉殖時,被呼叫

public function __clone()

} }$p1= new people();

//直接為私有屬性賦值的操作,會自動呼叫__set()方法進行賦值

$p1->name="wlt";

$p1->***="man";

//直接獲取私有屬性的值,會自動呼叫__get()方法,返回成員屬性的值

echo "name ".$p1->name."

"; echo "*** : ".$p1->***."

";

// 下面會呼叫 __isset

var_dump(isset($p1->name));

// 下面會呼叫__unset

var_dump(unset($p1->name));

// 下面會呼叫__call

$p1->test('1',2),;

// 下面會呼叫__callstatic()

$p1::test('1',2),;

// 獲取類中的所有方法列表 get_class_methods

var_dump(get_class_methods('people')) ;

mysql 魔術設定 PHP魔術方法(附帶例項)

在物件導向程式設計中,php 提供了一系列的魔術方法,這些魔術方法為程式設計提供了很多便利,在 php 中的作用是非常重要的。php 中的魔術方法通常以 兩個下劃線 開始,並且不需要顯式的呼叫而是在某種特定條件下自動呼叫的。前面我們介紹的建構函式 construct 和析構函式 destruct 就...

php中魔術方法的應用

魔術方法是以兩個下劃線 開頭,具有特殊作用的一些方法,可以看做 php 的 語法糖 語法糖 指那些沒有個計算機語言新增新功能,而只是對人類來說更 甜蜜 的語法,語法糖往往給程式設計師提供了更實用的編碼方式或者一些技巧的用法,有益於更好的編碼風格,是 更易讀。不過其並沒有給語言新增什麼新東西。php ...

PHP中的魔術方法

php 將所有以 兩個下劃線 開頭的類方法保留為魔術方法。因此,在定義類方法時,除了下述魔術方法外,建議不要以 為字首。construct 構造方法或建構函式 具有建構函式的類會在每次建立新物件時,先呼叫此方法。因此,非常適合在使用物件之前做一些初始化操作。注意 如果子類中定義了建構函式則不會隱式呼...