更简单的IF声明

时间:2014-03-03 13:40:54

标签: php if-statement

我刚刚写了这篇文章,并且认为必须有一个更容易/更干净的方法来做到这一点,因为这样做看起来很可怕:

if(isset($_GET['m']) && isset($_GET['v'])) {
    Router::Get($_GET['m'], $_GET['v']);
} elseif(isset($_GET['m'])) {
    Router::Get($_GET['m'], "");
} else {
    Router::Get("", "");
}

我正在寻找一种更清洁的方式,例如:

Router::Get(is('m'), is('v'));

有关缩短/清理此类if语句的建议吗?

2 个答案:

答案 0 :(得分:7)

可以,

$m = isset($_GET['m']) ? $_GET['m'] : "";
$v = isset($_GET['v']) ? $_GET['v'] : "";
Router::Get($m, $v);

答案 1 :(得分:2)

您可以封装逻辑:

Router::$query = $_GET;
Router::Get('m', Router::Get('v'))

class Router {
    static public $query;
    static function Get($name, $default = '') {
        return isset(self::$query[$name]) ? self::$query[$name] : $default;
    }
}