PHP重载和其他区别
PHP中的"重载"与其它绝大多数面向对象语言不同。传统的"重载"是用于提供多个同名的类方法,但各方法的参数类型和个数不同。
什么时候调用
当调用当前环境下未定义或不可见的类属性或方法时,重载方法会被调用未定义或不可见的类属性或方法
<?php
class Car {
public $speed = 0;
private $priveate_name;
public function __call($name, $args) {
echo '调用的方法名是:' . $name . '<br/>' . '调用方法传递的参数' . var_export($args, true) . '<br/>';
}
public function __set($name, $value)
{
echo '设置变量的名称:' . $name . '<br/>' . '设置的变量值:' . $value . '<br/>';
}
}
$car = new Car();
$car->speedUp(1111); //调用不存在的方法会使用重载
$car->private_nmae = 15; //设置不存在的变量名或者是没有访问限制
//调用的方法名是:speedUp
//调用方法传递的参数array ( 0 => 1111, )
//设置变量的名称:private_nmae
//设置的变量值:15
网友评论