用户登录

下面,我们再去试试去设置一个对象里不存在的属性 ... 比如设置一下 $magic 这个对象的 duration 属性 ... 让它等于 3 分钟 ...

$magic->track_duration = '3分钟';

回到浏览器 ... 你会发现,在 magic 这个对象里,会包含这个 duration 属性,还有一个对应的值 ...

设置这种不存在的属性的时候,同样会去调用在类里面定义的 __set 方法 ... 这样也就会去设置这个属性还有它的值。

不过在这个函数里面,我们也可以限制一下,让用户只能去设置在类里面已经存在的属性的值 .. 回到 Track.php ...

在 __set 函数里,可以加上一个 if ,去判断一下 .. 判断的条件是属性已经存在了 ... 可以使用 property_exists 这个函数 ... 这个函数有两个参数,第一个参数是要判断的对象 ... 这里用 $this 来表示 .... 第二个参数是要判断的属性 ... 用 $name 来表示 ... 如果属性在对象里面存在的话 ... 这个函数就会返回 true ....

if(property_exists($this, $name) ) {
$this->$name = $value;
}

保存 ... 回到浏览器...

现在,我们在这个 magic 对象里面,就看不到设置的那个 duration 属性了 ... 因为这个属性在对象里面是不存在的 .... 所以我们就不能去设置它了。

设置一个不存在的属性《 PHP 面向对象 》

统计

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

社会化网络

关于

微信订阅号

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