【发布时间】:2012-04-23 01:22:55
【问题描述】:
我有这个变量。
$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;
}
}
}
但我觉得这段代码不好。
有什么建议可以用上面的条件编写更好的代码吗?
【问题讨论】:
-
为了可读性,我强烈建议不要将其转换为内联条件。
-
如果第一个条件为真,第二个为假,第三个为假,会发生什么?
-
@xbonez 如果你的意思是像
$return = $foo == NULL ? TRUE : FALSE;是的,我也不会那样做。 -
@JonathanM 然后
$return将TRUE -
@GusDeCooL,目前不在您的代码中。现在的情况是,处理将通过所有 if 和 else 并在您发布的部分之后继续。
标签: php conditional conditional-operator