私有字段private也可以外部访问
浏览数:3104 时间:2015-01-08
由 private 定义的类成员则只能被其所在类访问。但是下面我们写一个小程序,可以在类的外部访问该 private 字段。
<?php class nowamagic { private $domain; function __get($key){ return "使用get访问属性".$this->$key; } function __set($key,$value){ $this->$key = $value; echo("使用set设置属性$key, 赋值为:<font color=red>$value</font>"); } } $ins = new nowamagic(); $ins->domain = "nowamagic.net"; echo '<br />'; echo $ins->domain; ?>
程序运行结果:
使用set设置属性domain, 赋值为:nowamagic.net 使用get访问属性nowamagic.net
php类中如有字段domain是私有字段,实例化后也可以直接访问该字段,不知道为什么要这样做?有什么优点?既然是私有字段,就不应该能够直接访问,应该只能通过类中的方法来访问(不是通过__get及__set)。
既然是私有的了就不该能够直接访问,我觉得这样比较合理些。
友情链接