问答详情
源自:2-9 PHP类和对象之重载

callStatic()用法

<?php

class Car {

    public $speed = 10;

    public static $staVal=10;//静态变量

    //在这里使用重载实现speedDown方法

    public function __call($name,$args){

        if($name=='speedDown'){

            $this->speed-=10;

        }

    } 

//重载实现静态方法funSta()

    public static function __callStatic($name,$args){

        if($name=='funSta'){

            Car::$staVal=0;//把静态变量值变为0

        }

    }

}

$car = new Car();

Car::funSta();//调用不存在的静态方法 下面直接调用callStatic来实现

echo Car::$staVal;//输出为0 说明调用了callStatic()的内容

$car->speedDown(); //调用不存在的speedDown方法

echo $car->speed;


提问者:qq_兒_0 2018-06-24 17:03

个回答

  • 影子好怕黑
    2018-06-25 17:15:22

    good