0

私はこの変数を持っています。

$productId = 2; // Testing ID
$value->id; // Contains INT
$value->datePurchaseEnd; // Contains UNIXTIME or NULL

私が作りたい条件付き。 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;
            }
        }
    }

しかし、私はこのコードが良くないと感じています。
上記の条件付きでより良いコードを作成するための提案はありますか?

4

3 に答える 3

6

私はどちらかを言うでしょう

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

また

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

条件が必要かどうかによって異なりますelse

于 2012-04-10T18:09:02.530 に答える
2
if( $value->id == $productId){
    $return = ($value->datePurchaseEnd == NULL || $value->datePurchaseEnd > mktime());
    break;
}

また

 $return = $value->id == $productId && ($value->datePurchaseEnd == NULL || $value->datePurchaseEnd > mktime());
 break;
于 2012-04-10T18:11:08.873 に答える
0

コードがループしていない場合は、インライン条件を使用することをお勧めします。

return $value->id == $productId && ($value->datePurchaseEnd == null || $value->datePurchaseEnd > mktime())
于 2012-04-10T18:14:41.790 に答える