复制代码 代码如下:
$proname);
}
//是直接查看对象中私有属性是否存在时,自动调用这个方法
//__isset($proname)的使用,$proname代表属性名
private function __isset($proname){
return isset($this->$proname);//isset()返回是否存在
}
function __construct($name,$age,$sex){
$this->name=$name;
$this->age=$age;
$this->sex=$sex;
}
//当获取私有的成员属性时,自动调用此方法
private function __get($proname)
{
//控制所获取的值
if($pr
if($this-age>40)
return $this->age-10;
}
return $this->$proname;
}
//当设置私有的成员属性时,自动调用此方法
private function __set($proname,$provalue){
//$proname表示成员属性名,$provalue表示成员属性值
//控制设置范围
if($pr
if($provalue > 100 || $provaluereturn;
}
$this->$pr
}
//提供公有方法来设置成员属性的值
function setage($age){
//控制年龄范围,增加安全性
if($age > 100 || $age return;
$this->age=$age;
}
//提供公有方法来获取成员属性的值
function getage(){
//控制获取年龄的范围
if($this->age return $this->age;
else if($this->agereturn $this->age-5;
else if($this->agereturn $this->age;
else
return $this->age-15;
提供公有方法来 }
function say(){
echo 我的名字:{$this->name},我的年龄:{$this->age},我的姓别:{$this->sex}
;
//访问封装过的 run()方法
$this-run();
}
private function run(){
echo '111111111111
'
}
function eat(){
}
//析构方法
function __destruct(){
}
}
$p1=new person(zhangsan,25,男);
$p2=new person;
$p3=new person;
//$p1->age=-50;//因为年龄在外部随意访问,所以成员属性药封装,才有安全性。
$p1->setage(30);//通过方法来设置成员属性德值
$p1->getage();//通过方法来获取成员属性德值
//通过添加家魔术方法__set($proname,$provalue) __get($proname),就可以直接调用成员属性了
$p1->say();//可以调用
$p1->run();//私有的方法不能直接调用
//删除$p1里面的name
unset($p1->name);
//判断name是否存在
if(isset($p1->name)){
echo 存在
;
}else{
echo 没有这个成员
;
}
?>
作者:代号极光
出处:http://zizhuyuan.cnblogs.com 以上就介绍了photoshop学习心得 php学习笔记 php中面向对象三大特性之一[封装性]的应用,包括了photoshop学习心得方面的内容,希望对php教程有兴趣的朋友有所帮助。