我有这个变量。
$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;
}
}
}
但我觉得这段代码不好 有没有建议用上面的条件制作更好的代码?
答案 0 :(得分: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
答案 1 :(得分:2)
if( $value->id == $productId){
$return = ($value->datePurchaseEnd == NULL || $value->datePurchaseEnd > mktime());
break;
}
或
$return = $value->id == $productId && ($value->datePurchaseEnd == NULL || $value->datePurchaseEnd > mktime());
break;
答案 2 :(得分:0)
如果您的代码不在循环中,我更喜欢内联条件:
return $value->id == $productId && ($value->datePurchaseEnd == null || $value->datePurchaseEnd > mktime())