Re: [請益] 邏輯判斷簡化的問題

看板PHP作者 (銀色)時間13年前 (2013/01/18 21:24), 編輯推噓0(001)
留言1則, 1人參與, 最新討論串3/4 (看更多)
※ 引述《lottemarines (一平)》之銘言: : 程式如下: : 我這樣寫當然是沒問題,但一看就知道不對啊。 : 一定有更好的方法可以達成簡潔的程式碼然後可以做到一樣的效果吧? 我不太確定你是想問「整潔」的程式碼, 還是一個有架構,好理解,好擴充的程式碼 XDD 基本上這兩者是稍微有點背道而馳的, : 跪求高手指導^ ^ : if (($_POST[tx_kind]==1) && ($_POST[tx_usage]!=0)) { : die('如果類別是購買,則使用量應為0'); : } : if (($_POST[tx_kind]==1) && ($_POST[tx_borrow]!=0)) { : die('如果類別是購買,則借用量應為0'); : } : if (($_POST[tx_kind]==1) && ($_POST[tx_doctor]!=0)) { : die('如果類別是購買,則不應有操作醫師'); : } : if (($_POST[tx_kind]==1) && ($_POST[tx_member]!=0)) { : die('如果類別是購買,則不應有操作人員'); : } : if (($_POST[tx_kind]==1) && ($_POST[tx_member_ppf]!=0)) { : die('如果類別是購買,則不應有操作人員'); : } 岔題回別的,我自己是不太建議 $_POST[tx_kind] 這樣使用變數 比較好的寫法是 $_POST['tx_kind'] 這樣, 因為實際上你是去取 $_POST 這個 hash table 的 'tx_kind' 字串索引的值, 而之所以在這裡 tx_kind 可以和 'tx_kind' 通用, 是因為在 PHP 裡,不加 $ 的可用變數字串會先被判別是否為常數, 如果不是常數,才會被視為字串, 也就是說,如果我在前面做了 define ('tx_kind', 1) 這個宣告, $_POST[tx_kind] 實際上會變成 $_POST[1],引發不再預期內的錯誤, 所以…(攤手) XDD -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 101.10.100.163

01/19 09:31, , 1F
有顏色有加分
01/19 09:31, 1F
文章代碼(AID): #1G-Kq0Wp (PHP)
文章代碼(AID): #1G-Kq0Wp (PHP)