美文网首页PHP经验分享
PHP面向对象-重载和魔术方法

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

作者: PHP的艺术编程 | 来源:发表于2018-12-05 14:40 被阅读0次
    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
    
    

    相关文章

      网友评论

        本文标题:PHP面向对象-重载和魔术方法

        本文链接:https://www.haomeiwen.com/subject/hrtwcqtx.html