php 魔法方法

本文详细介绍了PHP中的魔术方法,包括__set, __get, __isset, __unset, __call及__clone等。通过实例展示了如何利用这些方法实现动态属性管理、方法调用重载以及对象克隆等功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

__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);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值