面向物件之魔術方法__get()和__set()
阿新 • • 發佈:2019-01-26
__get()方法:這個方法用來獲取私有成員和保護成員屬性值的,有一個引數,引數傳入你要獲取的成員屬性的名稱,返回獲取的屬性值,這個方法不用我們手工的去呼叫,因為我們也可以把這個方法做成私有的方法,是在直接獲取私有屬性的時候物件自動呼叫的。因為私有屬性已經被封裝上了,是不能直接獲取值的,但是如果你在類裡面加上了這個方法,在使用“echo $p1->name”這樣的語句直接獲取值的時候就會自動呼叫__get(
__set()方法:
了,如果沒有__set()這個方法,是不允許的,比如:$this->name=‘zhangsan’,這樣會出錯,但是如果你在類裡面加上了__set(
<?php
header("content-type:text/html;charset=utf-8");
class car{
//private $ming;
protected $ming;
//public $ming;
function __set($name,$value)
{
//另外可以加入判斷的程式碼
$this->$name=$value;
}
function __get($name)
{
//另外可以加入判斷的程式碼
return $this->$name ;
}
}
$car1=new car();
$car1->ming='本田';
echo $car1->ming;