封装是把一些相关的属性和行为隐藏起来,从而得到保护和安全。
封装关键字
public 表示全局,类内部外部子类都可以访问;
protected表示受保护的,只有本类或子类或父类中可以访问;
private表示私有的,只有本类内部可以使用;
Public Protected Private
全局 √ X X
继承类 √ √ X
本类 √ √ √
封装相关函数:__set() , __get()
某些特定操作的时候需要访问和赋值封装的类型,这个时候我们就需要其他的函数帮我们完成这些操作,PHP为我们提供了个方法名:__set() , __get()
__set() 取得当前类中封装过私有属性或者方法重新执行或赋值操作
用法:__set($Name,$Value)
__get() 取得当前类中封装过属性或方法并转换成共有属性
用法:__get($Name)
实例:
<?php
class wuqiang{
private $name;
function __construct($name=""){
$this->name=$name;
} //PHP5中的构造函数初始化的方法
function __get($n){
return $this->name; //因为私有变量不能被访问,所以必须用__get()方法来访问。
}
function __set($n,$v){ //因为私有变量不能被修改,所以需要用__set()方法来修改。
if($v=="小强") //如果修改的是小强的话,修改,否则不做修改
{
$this->$n=$v;
}
}
function li(){
$this->name."看电影"; //$this关键字的用法
}
}
$a=new wuqiang("小明");
$a->name="小强"; //私有变量不能被修改
echo $a->name; //私有变量是不能访问的,
?>
原文地址:http://www.qinychun.com/2012/06/php-set-get/39.html
沁园春 www.qinychun.com