我是一名有經驗的程序員,但我不是PHP開發人員。我被要求排除以下代碼的故障,但看不到問題所在。這個if語句的工作原理:Stuck疑難解答覆合IF聲明
<?php
if ($ice_cream_social == 'yes') {
$registration_price = "58.00";
}
?>
然而,問題的頁面需要一些複合IF測試語句如果表單元素都被檢查,並相應地調整價格。此代碼不能正常工作,它沒有給出一個錯誤 - 但如果不執行:
<?php
if ($ice_cream_social == 'yes' AND $registration_type == 'Banquet and Conference') {
$registration_price = "78.00";
?>
使用的開發工具,我已經驗證領域正在從HTML傳遞的表單,代碼有變量名稱和值拼寫正確,我可以成功測試任何ONE變量的值。看起來,當使用上面所示的語法添加第二個或第三個測試時,測試失敗並且IF不運行。基於我對PHP的語法和一些Google搜索的有限理解,代碼看起來對我來說是正確的(並且不會產生任何錯誤),但我想我錯過了爲什麼這不起作用。
有人可以告訴我,如果我錯過了我的代碼示例中明顯會導致IF不運行的東西嗎?我沒有包括更多的代碼,因爲這是一個凌亂的一套包括:)
謝謝!
** 1.''var_dump()''$ ice_cream_social'和$ $ registration_type'的值並查看它輸出的內容。 ** 2。[使用'==='而不是'==']是一個好主意(http://stackoverflow.com/a/2063500/1438393)。 ** 3。**我建議使用['&&'而不是'AND'](http://stackoverflow.com/a/11861068/1438393)。 –
我會檢查值,並確保沒有空白導致邏輯失敗。你可以像前面提到的那樣使用var_dump來獲取封裝值以及字符串長度並進行比較。如果空白是一個問題,你可以使用trim()來消除它。 – phpisuber01
嗨阿馬爾 - 我嘗試了所有3個建議。變量的轉儲顯示它們應該正確匹配並且檢查應該通過。我也切換到&&和三重平等,我知道測試值和類型匹配。但是我仍然沒有得到IF來執行。任何其他想法? – red4d