0

ifステートメントを使用して検証をテストしようとしています。

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

このステートメントが実行される前$blue = 0

これを実行した後...$blueに変わります1

なぜ何かアイデアはありますか?

4

7 に答える 7

6

=の代わりに使用しています==

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

その結果(の左側&&がtrueを返すと仮定して)$blue が割り当てられ "1"ます。

これは最も一般的なプログラミングの間違いの1つです!! ==それが起こらないようにする方法として、プログラマーは定数をasの左側に置きます。

1 == $blue

誤って次=の代わりに書くことになった場合==

1 = $blue

定数に割り当てることができないため、構文エラーが発生します。

于 2012-04-27T06:50:15.613 に答える
2

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

//コードは($ blue = "1")'='はphp比較の代入演算子です'=='

于 2012-04-27T06:54:19.693 に答える
1

比較する代わりに割り当て$blue = 1ているので、$blueは1です

于 2012-04-27T06:53:31.813 に答える
0

これは、を使用するためです=。を使用し$blue == "1"ます。

于 2012-04-27T06:51:16.207 に答える
0

次の条件では、あなたの同等の歌は正しくありませんif(($ red == "1")&&($ blue == "1")){$ green = "hello"; }

于 2012-04-27T06:52:11.610 に答える
0

うん、==代わりに使う=

私はさらに進んで、そのような状況を避けるために比較するときは、おそらく左側にリテラルを置くべきだと言います。

if(1 == $blue)代わりにif($blue == 1)

于 2012-04-27T06:52:16.210 に答える
0

=の代わりに==または===を使用してください。

'='は代入演算子であり、条件演算子は==または===です。

if (($red == "1") && ($blue == "1") ) 
 { 
     $green = "hello"; 
 }
于 2012-04-27T06:57:21.193 に答える