首頁  >  文章  >  後端開發  >  魔術方法__set()實例詳解(php物件導向教學課程)

魔術方法__set()實例詳解(php物件導向教學課程)

巴扎黑
巴扎黑原創
2017-04-18 18:15:322500瀏覽

__set()的作用:

__set():在給不可存取屬性賦值(private,protected,不存在)時,php就會執行__set()方法。

上面我們說了__set()的作用是:在給不可存取屬性賦值(private,protected,不存在)時,php就會執行__set()方法。

這個是什麼意思呢。比如說,我們還是以上面的實例為例。我們把猴子喜歡吃的桃子換成香蕉,但是根據規則來說,$food前面的關鍵字是protected
,不能直接訪問,但是我們又需要對$food賦值,我們該怎麼辦呢?

name = $name;
$this->food = $food;
}
function sayHello(){
echo '
我是' . $this->name . '我喜欢吃' . $this->food; } //魔术方法 function __get($pro_name){ //先判断$pro_name是否存在 if(isset($this -> $pro_name)){ return $this -> $pro_name; }else{ echo '属性值不存在'; } } function __set($pro_name,$value){ //先判断$pro_name是否存在 if(isset($this -> $pro_name)){ return $this -> $pro_name = $value; }else{ echo '属性值不存在'; } $monkey = new Monkey('猴子' , '桃子') $monkey -> sayHello(); echo '猴子喜欢吃' . $monkey -> food; $monkey -> food = '香蕉'; echo '
'; $monkey -> sayHello();

因為我們的$food是保護的,所以不允許存取。那麼,我們就要藉助__set()魔術方法來實現。 __set()方法包含兩個參數,分別表示變數名稱和變數值,兩個參數不可省略。

以上是魔術方法__set()實例詳解(php物件導向教學課程)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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