开启辅助访问
帐号登录 |立即注册

PHP对象的封装:private,__get,__set,__isset,__unset

     
<?php
//对象的封装
class Staff
{
private $name ;
private $age ;
private $salary;

//构造方法用来初始化对象属性
public function construct ($name , $age , $salary)
{
$this->name = $name ;
$this->age = $age;
$this->salary = $salary;
}

//用__get 方法获取对象属性
public function __get ( $name )
{
return $this->$name ;
}

//用__set方法设置对象属性
public function set ( $name , $va lue)
{
$this->$name = $value;
}

//实现直接读取私有属性
$obj = new Staff( 'Peter', 38,6500);
echo $obj->name ;
echo $obj ->age;
echo $obj->salary;
echo '<hr>' ;

//实现直接修改私有属性
$obj->name = ' Tom' ;
echo $obj->name;
echo '<hr>';
$obj->age = 45;
echo $obj->age;
echo '<hr>' ;
$obj->salary = 7900;
echo $obj->salary;
?>

//扩展技巧:加入判断条件,使指定属性设置无效
public function set ($name, $value)
{
if ( $name==‘age' )
{
return false ;
}

// __isset() :检测是否存在某个私有属性
public function  __isset ( $name )
{
return isset ($this->$name);
}
echo isset($obj->name) ? '存在: '不存在';

// __unset() :删除私有属性时,自动激活该方法。
public function __unset ( $name)
{
unset( $this->$name);
}


回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

友情链接
  • 艾Q网

    提供设计文章,教程和分享聚合信息与导航工具,最新音乐,动漫,游戏资讯的网站。