用户登录

如果你不想使用 __get 方法获取到对象里的所有的属性的值,也就是,你只想让指定的属性可以使用 get 方法获取到。

我们可以再去设置一下 ... 先在类里面去定义一个私有的属性 ... 这个属性是一个数组,在这个数组里,可以包含你允许访问的属性 ... 这个数组可以叫它 white_list ... 数组里面的项目就是允许访问的属性的名称 ... 先设置一个 track_name ...

private $access = array('track_name')

为了演示一下,在上面,再去定义一个属性 ... 叫做 track_artist ..

private track_artist

然后在 __get 函数里面,返回属性值之前先去判断一下,这个属性是不是在 access 这个数组里,也就是我们允许访问的属性的这个数组。如果在里面,就返回属性的值 ... 如果不在的话,就返回一个 NULL ...

public function __get($name) {

if(in_array($name, $this->access)) {
return $this->$name;
} else {
return NULL;
}
}

在下面,再设置一下 magic 这个对象的 track_artist 属性的值 ..

$magic->track_artist = 'Coldplay';

下面,先试一下访问 track_name 这个属性 ... 回到浏览器 ... 会显示这个属性的值 ... 因为这个属性包含在 access 这个允许访问的属性的数组里面。

回过来,再试一下去访问 track_artist ... 回到浏览器 ...

没有任何的显示 ... 因为这个属性不在我们自己设置的允许访问的属性的数组里。

限制访问的属性《 PHP 面向对象 》

统计

14696
分钟
0
你学会了
0%
完成

社会化网络

关于

微信订阅号

扫描微信二维码关注宁皓网,每天进步一点