在写个人后台接口时有大量的请求类型,需要根据请求类型选择执行相关的方法,之前使用的使用大量的if...elseif,在添加需求四极为的不方便。通过查询资料发现可以通过call_user_func进行优化,方案如下:
原代码:
class Users {
private $app_function ;
public function RunUser(){
if($this->app_function == 'sign_up'){
$this->Sign_up();
}elseif($this->app_function == 'sign_in') {
$this->Sign_in();
}elseif($this->app_function == 'ceshi'){
$this->_ceshi();
}
}
}
优化后:
class Users {
private $app_function ;
public function RunUser(){
$app_function_set=[
'sign_up'=>'Sign_up',
'sign_in'=>'Sign_in',
'ceshi'=>'_ceshi'
];
$ceshi = $app_function_set[$this->app_function];
call_user_func(array($this, $ceshi));
}
}
优化之后后续增加方法时可以不用增加elseif,只需要设置$app_function_set即可,避免修改代码增加。
技术有限,后续在进行学习