PHP魔術方法的的理解

2021-09-09 07:57:35 字數 1872 閱讀 8113

_set:屬性不存在時自動設定屬性

/**

* 屬性不存在時通過__set自動設定屬性

* @param $key [鍵名]

* @param $value [屬性值]

*/function __set($key,$value)

**:$object->title = 'blue'; //設定不存在的屬性,呼叫__set()

echo $object->title,'

'; //輸出不存在的屬性,呼叫__get()

輸出:blue

__get:屬性不存在或不能讀取時,設定該方法可讀取

/**

* 屬性不存在或不能讀取(屬性為私有private)時,通過__get讀取

* @param $key 鍵名

* @return 屬性

*/function __get($key)

__call:方法不存在時,執行

/**

* 方法不存在時,執行__call方法

* @param $func [方法名]

* @param $param [引數]

* @return [description]

*/function __call($func,$param)

**:$object -> show('hello','world'); //呼叫不存在的方法,呼叫__call()

輸出:string(4) "show"

array(2)

__callstatic:靜態方法不存在時,執行

/**

* 靜態方法不存在時,執行__callstatic方法

* @param $func [方法名]

* @param $param [引數]

* @return [description]

*/static function __callstatic($func,$param)

**:imooc\object::show('hello','world'); //呼叫不存在的靜態方法,呼叫__callstatic()

輸出:string(4) "show"

array(2)

__tostring:當物件轉換為字串時,執行

/**

* 當物件轉換為字串時,執行__tostring方法

* @return string [description]

*/function __tostring

**:echo $object,'

'; //將物件以字串形式輸出,呼叫__tostring()

輸出:imooc\object

__invoke:當把物件當成函式來使用時,執行

/**

* 當把物件當成函式來使用時,執行__invoke方法

* @param [type] $param [引數]

* @return [type] [description]

*/function __invoke($param)

**:echo $object('hello'); //將物件當函式使用,呼叫__invoke()

輸出:string(5) "hello"

PHP魔術方法理解

function exists dump else output output echo output class magic 給乙個未定義的屬性賦值時呼叫 param string name 呼叫的未定義的屬性名稱 param mixed value 對未定義的屬性賦值的值 public func...

php的魔術函式(魔術方法)

construct 類的建構函式 destruct 類的析構函式 call 在物件中呼叫乙個不可訪問方法時呼叫 callstatic 用靜態方式中呼叫乙個不可訪問方法時呼叫 get 獲得乙個類的成員變數時呼叫 set 設定乙個類的成員變數時呼叫 isset 當對不可訪問屬性呼叫isset 或empt...

php的魔術方法

從php5以後的版本,類就可以使用魔術方法了。php規定以兩個下劃線 開頭的方法都保留為魔術方法,所以建議大家函式名最好不用 開頭,除非是為了過載已有的魔術方法。目前php已有的魔術方法有 construct,destruct,call,get,set,isset,unset,sleep,wakeu...