if($data['status']=="AVAILABLE"){
if(Yii::app()->user->getState('userId')!=$book_owner_id){
$wantbtn_class = "showbtn";
}else{
$wantbtn_class = "hidebtn";
}
}else{
$wantbtn_class = "hidebtn";
}
如何使用这个condtion三元运算符可以任何人帮助我....
答案 0 :(得分:1)
三元陈述遵循以下模式:
(比较)? (如果是真的话):(如果是假的话)
您可以通过以下方式使您的三元组成为:
($data['status']=="AVAILABLE")?((Yii::app()->user->getState('userId')!=$book_owner_id)?$wantbtn_class = "showbtn";:$wantbtn_class = "hidebtn";):$wantbtn_class = "hidebtn";
虽然上面的代码直接回答了您的问题,但您应该暂停询问“我应该使用三元”吗?
答案可能是否定的。正如您所看到的,这段代码的可读性较差,而您原来的if / else语句是完全可读的。
共识似乎是你只对简单表达式使用三元组(参见:this response),但对于更复杂的表达式,将其全部分解为if / else语句。
答案 1 :(得分:1)
$wantbtn_class = ($data['status']=="AVAILABLE") ? ((Yii::app()->user->getState('userId')!=$book_owner_id)? "showbtn" :"hidebtn"):"hidebtn";
答案 2 :(得分:0)
你可以重构你的情况并将你的2"其他"像这样:
($data['status']=="AVAILABLE" && Yii::app()->user->getState('userId') != $book_owner_id)? $wantbtn_class = "showbtn": $wantbtn_class = "showbtn";
答案 3 :(得分:0)
我猜你所指的部分是:
if(Yii::app()->user->getState('userId')!=$book_owner_id) {
$wantbtn_class = "showbtn";
} else {
$wantbtn_class = "hidebtn";
}
如果是这种情况,要使用三元运算符,请执行以下操作:
$wantbtn_class = ( Yii::app()->user->getState('userId') != $book_owner_id ) ? "showbtn" : "hidebtn";
但是,如果您指的是完整代码,那么您需要的是:
$wantbtn_class = ( ($data['status']=="AVAILABLE") && (Yii::app()->user->getState('userId') != $book_owner_id) ) ? "showbtn" : "hidebtn";