私有字段private也可以外部访问

由 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)。

既然是私有的了就不该能够直接访问,我觉得这样比较合理些。

zgguan.com(it学习网) — 提供最好的 XHTML教程DIV+CSS教程JavaScript教程PHP教程ThinkPHP教程