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

服务器君一共花费了135.990 ms进行了6次数据库查询,努力地为您提供了提供了这个页面。

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

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

Creative Commons License

本文仅供自己学习与收藏之用,请勿转载,请勿用作其它用途(如商业目的等)。 原文链接:http://www.nowamagic.net/librarys/posts/php/11