2012-04-27 69 views
0

我試圖使用if語句來測試驗證。PHP如果和語句導致問題

if (($red == "1") && ($blue = "1")) { $green = "hello"; } 

在此聲明運行之前$blue = 0

我運行這個... $blue更改爲1

任何想法爲什麼?

+0

對不起,我的意思是說我之前運行,$藍色= 0 – 2012-04-27 06:49:01

+0

$藍色++; ?你想要什麼? correct = to ==在第二個括號 – 2012-04-27 06:50:28

+0

brian,編輯您的文章以糾正它。標籤下方有一個「編輯」鏈接。 – Mat 2012-04-27 06:50:36

回答

6

您在使用場所的===

if (($red == "1") && ($blue = "1")) { $green = "hello"; } 
          ^^^ 

結果(假設&&回到左邊真)$blue被分配"1"

這是最常見的編程錯誤之一!作爲一種方式,以防止它發生的程序員將恆量上的左手側==爲:

1 == $blue 

因此,如果錯誤你最終就是寫===

1 = $blue 

由於無法分配給常量,因此會出現語法錯誤。

+0

經過這麼多小時,我只是看不到它!有時需要別人來看簡單。謝謝 – 2012-04-27 06:54:57

+0

@brianwilsonL:我已經使用提示更新了答案,以避免此類錯誤。 – codaddict 2012-04-27 06:56:20

+1

避免此類錯誤的良好解決方案,謝謝@codaddict – nu6A 2012-04-27 07:05:02

0

這是因爲您使用=。使用$blue == "1"

0

你等於唱歌是在明年condistions IF(($紅色== 「1」)& &($藍色== 「1」)){$綠色= 「你好」 不正確; }

0

呀使用==代替=

我會進一步說,也許你應該把文字左手比較,以避免這種情況的時候。

if(1 == $blue)而不是if($blue == 1)

1

您比較的是分配的,而不是$blue = 1就是爲什麼$藍1

2

試試這個,如果(($紅色== 「1」)& &($藍色== 「1」)){$ green =「hello」; }

//您的代碼是($藍色= 「1」) '=' 是在PHP比較賦值運算符是 '=='

0

使用=====代替=

的 '=' 是分配運算符,條件運營商=====

if (($red == "1") && ($blue == "1")) 
{ 
    $green = "hello"; 
}