php

时间:2019-02-08 23:59:48

标签: php

我正在用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...';
    }
}

0 个答案:

没有答案