摘要:<?php //类的重载:动态的创建类的属性和方法 /*实现:通过魔术方法 * 属性的重载 * 1.__set($name,$value) * 2.__get($name) * 3.isset($name) * 4.unset($name) * PHP中的重载指
<?php
//类的重载:动态的创建类的属性和方法
/*实现:通过魔术方法
* 属性的重载
* 1.__set($name,$value)
* 2.__get($name)
* 3.isset($name)
* 4.unset($name)
* PHP中的重载指的是动态的创建属性与方法,是通过魔术方法来实现的。
* 属性的重载通过__set,__get,__isset,__unset来分别实现对不存在属性的赋值、读取、判断属性是否设置、销毁属性。
*/
class A
{
protected $arr = [];
public function __isset($name)
{
if (isset($this->arr[$name]))
{
return $this->arr[$name];
}else{
return '还没被设置';
}
}
public function __set($name, $value)
{
if (isset($this->arr[$name]))
{
return $this->arr[$name];
}else{
return $this->arr[$name] = $value;
}
}
public function __get($name)
{
if (isset($this->arr[$name]))
{
return $this->arr[$name];
}else
{
return '非法访问';
}
}
public function __unset($name)
{
if (isset($this->arr[$name]))
{
unset($this->arr[$name]);
}else
{
return '销毁失败';
}
}
}
$a = new A();
echo $a->__isset('1'),'<hr>';
echo $a->__set('1','123'),'<hr>';
echo $a->__get('1'),'<hr>';
echo $a->__unset('1');
?>
批改老师:韦小宝批改时间:2018-12-14 16:01:33
老师总结:恩!写的很不错哦!课后要多多的练习才能更容易掌握!