__set __get __isset __unset __call __clone
//魔术方法
class Car {
private $ary = array();
public function __set($key, $val) {
$this->ary[$key] = $val;
}
public function __get($key) {
if (isset($this->ary[$key])) {
return $this->ary[$key];
}
return null;
}
public function __isset($key) {
if (isset($this->ary[$key])) {
return true; } return false;
}
public function __unset($key) {
unset($this->ary[$key]);
}
}
$car = new Car();
$car->name = '汽车';
//name属性动态创建并赋值
echo $car->name;
class Car {
public $speed = 0;
public function __call($name, $args) {
if ($name == 'speedUp') {
$this->speed += 10;
}
}
}
$car = new Car();
$car->speedUp(); //调用不存在的方法会使用重载
echo $car->speed;
//__clone方法,来复制
class Car{
public $name="car";
public function __clone(){
$obj=new Car();
$obj->name=$this->name;
}
}
$a->name="new car";
$b=clone $a;
var_dump($b);
php 魔法方法
最新推荐文章于 2024-11-06 19:14:31 发布
本文详细介绍了PHP中的魔术方法,包括__set, __get, __isset, __unset, __call及__clone等。通过实例展示了如何利用这些方法实现动态属性管理、方法调用重载以及对象克隆等功能。
3973

被折叠的 条评论
为什么被折叠?



