在PHP中,__set 跟 __get 是 magic methods,用在存取物件中私有的成員
舉例來說,當物件中有 private 或 protected 的成員時,是無法直接存取的
class Item {
    protected $name;
    private $price;
}
$item = new Item();
$item->name = "Johnson";
echo $item->name;
以上程式會顯示
Cannot access protected property Item::$name
利用 __set 與 __get methods,當直接存取物件成員時,便會執行__set 或 __get methods,以達到由物件內部方法取得成員的動作
class Item {
    protected $name;
    private $price;
    function __set($name, $value) {
        $this->$name = $value;
    }
    function __get($name) {
        return $this->$name;
    }
}
$item = new Item();
$item->name = "Johnson";
echo $item->name;