亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

三元忽略第一個條件

三元忽略第一個條件

PHP
紅顏莎娜 2021-12-03 19:15:42
為什么我的三元忽略第一個條件($order->status === "prepairing")?檢查訂單狀態時,它總是跳過第一個條件并立即進入第二個條件(并且始終將其視為真)$messageMiddle = (  ($order->status === "prepairing") ? " your prder is being prepared. Make your way towards the store."                    : ($order->status === "complete")   ?' your order is done! Please show your order-code at the store.'                    : ' thank you for ordering ');
查看完整描述

2 回答

?
jeck貓

TA貢獻1909條經驗 獲得超7個贊

您需要按如下方式將括號中的每個下一個表達式分組。您忘記將第二個三元表達式括在括號中。

$messageMiddle = ($order->status === "prepairing") ? " your order is being prepared. Make your way towards the store." : 
                 (($order->status === "complete")  ? ' your order is done! Please show your order-code at the store.'  : ' thank you for ordering ');

但無論如何你都應該避免這種方法。


查看完整回答
反對 回復 2021-12-03
?
子衿沉夜

TA貢獻1828條經驗 獲得超3個贊

對訂單狀態做出反應的更好方法是使用switch 語句。像這樣:


switch ($order->status) {

    case "preparing" : $messageMiddle = " your order is being prepared. Make your way towards the store.";

                       break;

    case "complete"  : $messageMiddle = " your order is done! Please show your order-code at the store.";

                       break;

    default          : $messageMiddle = " thank you for ordering ";

                       break;

}

很容易看出如何擴展它以對其他狀態詞做出反應。


請注意,我將“準備”更改為“準備”。


程序員追求的目標之一是簡潔的代碼。然而,較短的代碼并不總是更好的代碼。它可能可讀性較差,并且更難以維護和擴展。


查看完整回答
反對 回復 2021-12-03
  • 2 回答
  • 0 關注
  • 189 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號