<?php
class Car {
public $speed = 10;
//在这里使用重载实现speedDown方法
function __call($name,$args){
if($name=='speedDown'){
$this->speed-=10;
}
}
}
$car = new Car();
$car->speedDown(); //调用不存在的speedDown方法
echo $car->speed;
1、什么是重载
1)PHP所提供的"重载"(overloading)是指动态地"创建"类属性和方法,我们是通过魔术方法来实现的。
2)当调用当前环境下未定义或不可见的类属性或方法时,重载方法会被调用。(屏蔽错误)
3)所有的重载方法都必须被声明为 public。
4)属性重载只能在对象中进行。在静态方式中,这些魔术方法将不会被调用。所以这些方法都不能被 声明为 static。
5)这些魔术方法的参数都不能通过引用传递。
属性必须要加public 方法不加就是默认public