PHP中可以有多个条件吗?

时间:2016-10-11 13:26:53

标签: php optimization conditional-statements

我是关于我的php开发的反思。我正在尝试优化我的代码。

我经常这样:

if($userConnected->getType() == User::BUYER_ACCOUNT_TYPE || $userConnected->getType() == User::ADMIN_ACCOUNT_TYPE){//Mycode}

我的问题是:是否可能有类似的内容:

if($userConnected->getType() == User::BUYER_ACCOUNT_TYPE || User::ADMIN_ACCOUNT_TYPE)

实际上我发现这样做的最好方法是:

if(in_array($userConnected->getType(), array(User::BUYER_ACCOUNT_TYPE, User::ADMIN_ACCOUNT_TYPE)))

我想知道是否有更好的方法?

提前谢谢

托马斯

1 个答案:

答案 0 :(得分:2)

您可以向User类添加一些公共方法,以检查用户是买方还是管理员:

public function isBuyer()
{
    return $this->type === self::BUYER_ACCOUNT_TYPE;
}

public function isAdmin()
{
    return $this->type === self::ADMIN_ACCOUNT_TYPE;
}

使用这些方法,您只需检查:

if ($userConnected->isBuyer() || $userConnected->isAdmin())

如果经常使用上述条件,您可以采取更进一步的方法:

public function isAllowed() // just an example of a method name
{
     return $this->isBuyer() || $this->isAdmin();
}