<?php
class A{
public static function __callStatic($method, $args){ //调用类中不存在的静态方法是触发
return (new static)->$method(...$args);//...代表可变参数
}
public function __call($method,$args){ //调用类中的不存在的方法是调用
$argsLog = '';
end($args);
$lastKey = key($args);
reset($args);
foreach ($args as $key => $value) {
if ($lastKey!=$key) {
$argsLog .= $value.',';
}else{
$argsLog .= $value;
}
}
echo $method .'('.$argsLog.') 不存在!';
}
}
class B extends A {
protected function getName($name){//用protected 范围修饰符 因为用public会报严格模式错误 先认定getName不是静态方法
echo $name;
}
}
B::getName('lisi');
echo '<br/>';
B::get('dd','dassf',1111);