一般说来,把数据声明为 private 进而封装起来更符合现实逻辑,然而,在对象外部对已封装的数据进行读写操作往往非常频繁,虽然可以像上文那样为每个数据都编写一个 getxxx() 和 setxxx() 方法,但这就意味着程序里面会出现非常多的 getxxx() 和 setxxx() 方法。一旦由于某些原因而导致类内部的 get 或者 set 方法需要重新命名,那需要修改的地方将会是茫茫多……

于是,从 php5 开始,php 给我们预定义了 4 个方法:

function __get(){
}

function __set(){
}

function __isset(){
}

function __unset(){
}
继续阅读