我正在用php和mysql创建一个小系统,在我的代码的一部分中,我必须应用一些逻辑来验证支付信息,首先我用三元运算符来执行此操作,但是显示错误的答案,接下来我重复与正常的if / else语句具有相同的逻辑并且可以正常工作,这是怎么回事...?
当我的$ registration-> pay的值为1并且$ registration-> voucher不为空时,就会出现问题,它应该显示“ Pay Confirmed”消息,而显示为“ Vender not sended”
//this show a bad answer ('voucher not sended')
$pay_message=(!isset($registration->pay) ? 'pay not registered' : ($registration->pay ? 'pay confirmed' : empty($registration->voucher) ? 'voucher not sended' : 'processing pay...'));
//this show the correct answer ('pay confirmed')
$pay_message='pay not registered';
if(!empty($registration)){
if($registration->pay)
$pay_message='pay confirmed';
else{
if(empty($registration->voucher))
$pay_message='voucher not sended';
else
$pay_message='processing pay...';
}
}