清理条件代码

Gus*_*ooL 0 php conditional conditional-operator

我有这个变量.

$productId = 2; // Testing ID
$value->id; // Contains INT
$value->datePurchaseEnd; // Contains UNIXTIME or NULL
Run Code Online (Sandbox Code Playgroud)

我想要的条件. if ($value->id == $productId) return true;

但如果$value->datePurchaseEnd;不是NULL那么也将它与当前时间进行比较,它必须大于当前时间才能返回TRUE;

现在这是我制作的代码:

if( $value->id == $productId){
        if( $value->datePurchaseEnd == NULL ){
            $return = TRUE; break;
        }else{
            if( $value->datePurchaseEnd > mktime() ){
                $return = TRUE; break;
            }
        }
    }
Run Code Online (Sandbox Code Playgroud)

但我觉得这段代码并不好.
有没有建议用上面的条件制作更好的代码?

nat*_*iah 6

我会说

if( ($value->id == $productId) && ($value->datePurchaseEnd == NULL || $value->datePurchaseEnd > mktime() )) {
        $return = true;
        break;
}
Run Code Online (Sandbox Code Playgroud)

要么

if($value->id == $productId) {
    if($value->datePurchaseEnd == NULL || $value->datePurchaseEnd > mktime()) {
        $return = true;
        break;
    }
}
Run Code Online (Sandbox Code Playgroud)

取决于条件是否需要 else