方法靜態化之後的好處就是,不再需要每個使用的地方都去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 ,更多大佬等你來玩