方法静态化之后的好处就是,不再需要每个使用的地方都去new obj。
可以大大简化代码,而且可以提升逼格。接下来一个demo带你装大佬【推眼镜】
1.在类中加入 __callStatic方法
public static function __callStatic($name, $arguments)
{
$mappingArr = [
'将来要写在::后面的方法名' => '真实的方法名',
// 'Create' => '_Create',
];
if (array_key_exists($name, $mappingArr)) {
return call_user_func_array([new Self::class(), $mappingArr[$name]], $arguments);
} else {
throw new \think\Exception('我丢雷楼某 。。 方法不存在', 10086);
}
}
__callStatic方法就是在静态上下文中调用一个不可访问方法时所以通过这个可以实现
在外部类使用的时候,只需要use namespace\obj 然后obj::methondName()即可。
关于call_user_func_array()方法,自行百度。
更多技术交流,请加群 8989 0449 ,更多大佬等你来玩