码迷,mamicode.com
首页 > 其他好文 > 详细

public、protected和private的区别以及__set()和__get()的用法

时间:2015-09-23 23:11:17      阅读:234      评论:0      收藏:0      [点我收藏+]

标签:

public、protected和private的区别

public       表示全局,类内部外部子类都可以访问;

protected  表示受保护的,只有本类或子类或父类中可以访问;

private      表示私有的,只有本类内部可以使用;

其中public具有全局性、继承性;protected具有被继承性;private只能被本类使用,不具有全局性和被继承性。

__set()和__get()的用法

如果外部程序想要得到类内部的私有属性,例如private $name,可在类中定义一个__get($a)的方法操作$name值并返回;然后外部对象即可通过$test->name得到一个处理过的私有$name值。

如果外部程序想要对类内部私有属性进行操作,可以在类中定义一个__set($a,$b)方法操作私有属性;然后外部对象即可通过$test->name="value"来对$name属性进行操作。

 

例如:

<?php 
class test{
private $name="";
    private $age=0;        
function __construct(){
    $this->name="alice";
       $this->age=20;
   }
   
function __get($a){
        return $this->$a;
    } 
function __set($a,$b){
$this->$a=$b;
}  
}
$test=new test();
echo $test->name."<br>".$test->age."<br>";
$test->name="abcd";
echo $test->name;
?>


输出结果为:

alice

20

abcd

 

public、protected和private的区别以及__set()和__get()的用法

标签:

原文地址:http://www.cnblogs.com/onyourway/p/4833608.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!