在写个人后台接口时有大量的请求类型,需要根据请求类型选择执行相关的方法,之前使用的使用大量的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即可,避免修改代码增加。 技术有限,后续在进行学习