这里重载为什么要设置参数,又为什么是两个?
<?php
class Car {
public $speed = 10;
//在这里使用重载实现speedDown方法
public function __call($name, $args){
if($name == 'speedDown'){
$this->speed -= 10;
}
}
}
$car = new Car();
$car->speedDown(); //调用不存在的speedDown方法
echo $car->speed;
<?php
class Car {
public $speed = 10;
//在这里使用重载实现speedDown方法
public function __call($name, $args){
if($name == 'speedDown'){
$this->speed -= 10;
}
}
}
$car = new Car();
$car->speedDown(); //调用不存在的speedDown方法
echo $car->speed;
2015-02-24
方法重载
public mixed __call ( string $name , array $arguments )
在对象中调用一个不可访问方法时,__call() 会被调用。
$name参数是要调用的方法名称。$arguments参数是一个枚举数组,包含着要传递给方法$name的参数。
<?php class Car { public $speed = 10; //在这里使用重载实现speedDown方法 public function __call($name, $args){ if($name == 'speedDown'){ $this->speed -= 10; var_dump($name,$args); } } } $car = new Car(); $car->speedDown('我是参数','我是参数2'); //调用不存在的speedDown方法 echo $car->speed;
因为调用了不存在的方法speedDown 所以进行了重载,传入了2个参数都存放在$args里
var_dump($name,$args);可以明显查看变量里面的内容
举报