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;
2018-06-25
good