2015-09-04 30 views
1

試圖澄清這一點。有一個測試表格,您可以提交一封信並提供相應的信息。PHP如果/類型問題

if ($letter = "A") { $message = "First letter."; } 
if ($letter = "B") { $message = "Second letter."; } 
if ($letter = "C") { $message = "Third letter."; } 

它一直給出最後一個$ message,在這種情況下是「第三個字母」。我知道它與操作符/條件語句和=符號有關,只是不確定要正確使用什麼。謝謝!

+4

的價值,如果你想真正的這些話應該是'如果($字母==「A」)'使用''==的 – Shehary

回答

2

=是賦值操作符,所以你基本上問「它是否工作將A賦值給$ letter?」。這將永遠是真實的。

比較運算符是==,所以它應該是if ($letter == "A") ...等等。

+0

=''其實運營商*返回*它設置的值。 '如果($ letter =「A」)'和'$ letter =「A」相同;如果($信)'。它可能不總是如此,就像你做了'if($ test = false)'? –

+0

我只是提到'$ letter =「A」'的例子,否則你是對的。 :) – hanzi

2

=$letter的價值,因爲該設置工作,它每次返回true,所以實際上$message正在設定每一次,但只有最後一個仍然存在。

使用==進行比較。或者更好的是,有答案的數據結構,然後從那裏拉:

$answers = array(
    'A' => 'First letter.', 
    'B' => 'Second letter.', 
    'C' => 'Third letter.' 
); 
$message = array_key_exists($letter, $answers) ? $answers[$letter] : ''; 
+0

'='操作符實際*返回它設置的值。 '如果($ letter =「A」)'和'$ letter =「A」相同;如果($信)'。它可能不總是如此,就像你做了'if($ test = false)'? –

3

==稱爲PHP比較運算符

隨着==意味着$x == $y,它如果$ x和$ y的返回true相同的鍵/值對

=稱爲PHP賦值運算符

=意味着$x = $y左操作數被集合T Ø表達的右側

More Detail here