speedDown实现重载方法,$name与下面调用不一样也可以运行,为什么

来源:2-9 PHP类和对象之重载

爱码仕

2015-09-11 21:31

<?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;


写回答 关注

1回答

  • LIANHK
    2015-11-20 15:29:30
    <?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;

    注意,if判断里面是两个等号,一个等号是赋值

PHP进阶篇

轻松学习PHP中级课程,进行全面了解,用PHP快速开发网站程序

182008 学习 · 2668 问题

查看课程

相似问题