在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;
Categories: PHP