PHP5对属性值的获取__get()与设置__set()的用法如下:
class PC
{
private $name;
private $price;
private $type;
function __get($propertyName)
{
if(isset($this->$propertyName))
{
return $this->$propertyName;
}
else
{
throw new Exception("not a property name",null);
}
}
function __set($name,$value)
{
if(isset($this->$name))
{
//通过switch可以对某些属性判断,设只读等
switch ($name)
{
case "price":
{
//这里可以对具体的属性做判断,如
if(intval($value,null))
{
$this->$name = $value;
}
else
{
throw new Exception("not a integer",null);
}
break;
}
case "type":
{
//设该属性只读
throw new Exception("read only property",null);
}
default:
{
$this->$name = $value;
break;
}
}
}
else
{
throw new Exception("not a property name",null);
}
}
function __construct($_name,$_price,$_type)
{
$this->name = $_name;
$this->price = $_price;
$this->type = $_type;
}
}