<?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);
}
|