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