上篇文章給大家介紹了《PHP中什么是繼承和派生?我們?nèi)绾芜\用繼承?》,本文繼續(xù)給大家介紹PHP中什么是魔術(shù)方法?常用魔術(shù)方法有哪些?有一定的參考價值,有需要的朋友可以參考一下,希望對大家有所幫助。
1、什么是魔術(shù)方法
系統(tǒng)在特定的時機自動調(diào)用的方法
2、常用魔術(shù)方法:
_get
觸發(fā)時機:對象在外部訪問私有成員或者受保護屬性時調(diào)用
該方法有一個參數(shù):參數(shù)就是屬性名
我們以代碼為例:
首先我們先建立一個新的文件,我們寫一個class類,在類里面定義屬性,然后我們創(chuàng)建一個對象,當我們?nèi)ポ敵觯╡cho)剛剛定義的類,我們會發(fā)現(xiàn)出現(xiàn)報錯,因為對象只能訪問公共的屬性,我們不能訪問受保護的和私有的屬性,代碼如下:
<?php class Person { public $name = '林徽因'; protected $pome = '答案很長,我準備用一生的時間來回答,你準備要聽了嗎?'; private $time = '民國' ; } $niu = new Person(); echo $niu->pome; ?>
代碼顯示結(jié)果:
我們會發(fā)現(xiàn)我們上述代碼運行出現(xiàn)錯誤,因此,在外部不能訪問受保護的和私有的屬性,如果我們想要在外部試圖通過對象來訪問受保護的或者私有的成員屬性時,就會自動的觸發(fā)get方法。
public function __get($name){ echo $name; }
緊接著打印出$name,
代碼顯示結(jié)果:
因此我們通過上述代碼可以使用if語句進行判斷:
if ($name == 'pome'){ return $this->pome;
代碼顯示結(jié)果: