PHP面向对象-重载和魔术方法

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

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容