标签:
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