我知道這不是做這件事的方法,但我在嘗試使用條件語句設置變量時遇到了一些麻煩。PHP中的多個if語句
對於一些方面,$foo
,$foo_1
和$foo_2
正在檢查,看是否有表單字段被設定,如果是,設置$bar
等於伴隨各條件的計算。
if(isset($foo)) {
$bar = ($baz * 52) * ($qux);
}
if(isset($foo_1)) {
$bar = ($baz_1 * 12) * ($qux);
}
if(isset($foo_2)) {
$bar = ($baz_2 * $qux);
}
這是因爲現有的代碼使用$條在計算
$a = ($b/$bar)
和$a
是在各種情況下進一步向下傳遞。
就這樣,只有第一個$foo
條件恰當地通過$bar
,所有其他條件$ bar輸出爲NULL。
編輯:爲了澄清上面的代碼(這是不正確的),並更新我下面的例子:
$foo = isset($form['first'] ? $form['first'] : '';
$foo_1 = isset($form['second'] ? $form['second'] : '';
$foo_2 = isset($form['third'] ? $form['third'] : '';
if(isset($foo)) {
$bar = ($foo * 52) * $qux;
}
if(isset($foo_1)) {
$bar = ($foo_1 * 12) * $qux;
}
if(isset($foo_2)) {
$bar = $foo_2 * $qux;
}
REVENT,奧斯瓦德和RoyalBG的建議指出,我的代碼沒有被正確設置變量,情況就是這樣。 $baz
,$baz_1
,$baz_2
已被棄用且不存在,並替換爲$foo
,$foo_1
,$foo_2
以伴隨其條件以獲得期望的輸入。一旦我清理了這個,我將使用一個switch語句,而不是我上面寫的。以下所有評論都非常有幫助感謝您的幫助。
您正在成倍增長,不需要括號。另外,請記住這些「if」不是互斥的。 – fedorqui
你還沒有顯示出足夠的代碼讓我真的有所幫助,但是從我所看到的,我可以說幾乎可以肯定你的代碼可以寫得更好。在http://codereview.stackexchange.com/ – Spudley
上尋求改進代碼的幫助可能會使您受益。更新後的示例給出了一個分析錯誤。 – Oswald