[英]Refactoring conditional statements PHP
我确实使用 post 方法创建了一个 User 类,其中包含像这样的大 if-elseif 语句:
class Users
{
public static function post($request)
{
if ($request[0] == 'register') {
return self::register();
} elseif ($request[0] == 'login') {
return self::login();
} elseif ($request[0] == 'pass') {
return self::changePass();
} elseif ($request[0] == 'avatar') {
return self::updateAvatar();
} elseif ($request[0] == 'logout') {
return self::logout();
}
throw new Excepcion....;
}
private static function register()
{
//Return something
}
private static function login()
{
//Return something
}
private static function changePass()
{
//Return something
}
private static function updateAvatar()
{
//Return something
}
private static function logout()
{
//Return something
}
}
我已经尝试过这个:
public static function post($request)
{
$method = $request[0];
return self::{$method}();
}
但是 PHPMD 发出警告避免未使用的私有方法
谢谢你的帮助!
您收到“避免未使用的私有方法”警告,因为您在静态方法中调用私有方法。
尝试:
<?php
class Users {
public function post($request) {
$method = $request[0];
return $this->{$method}();
}
private function register() {
//Return something
}
private function login() {
//Return something
}
private function changePass() {
//Return something
}
private function updateAvatar() {
//Return something
}
private function logout() {
//Return something
}
}
?>
称呼:
$r = (new Users())->post($request);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.