ifステートメントを使用して検証をテストしようとしています。
if (($red == "1") && ($blue = "1") ) { $green = "hello"; }
このステートメントが実行される前$blue = 0
。
これを実行した後...$blue
に変わります1
。
なぜ何かアイデアはありますか?
=
の代わりに使用しています==
:
if (($red == "1") && ($blue = "1") ) { $green = "hello"; }
^^^
その結果(の左側&&
がtrueを返すと仮定して)$blue
が割り当てられ "1"
ます。
これは最も一般的なプログラミングの間違いの1つです!! ==
それが起こらないようにする方法として、プログラマーは定数をasの左側に置きます。
1 == $blue
誤って次=
の代わりに書くことになった場合==
:
1 = $blue
定数に割り当てることができないため、構文エラーが発生します。
if(($ red == "1")&&($ blue == "1")){$ green = "hello"; }
//コードは($ blue = "1")'='はphp比較の代入演算子です'=='
比較する代わりに割り当て$blue = 1
ているので、$blueは1です
これは、を使用するためです=
。を使用し$blue == "1"
ます。
次の条件では、あなたの同等の歌は正しくありませんif(($ red == "1")&&($ blue == "1")){$ green = "hello"; }
うん、==
代わりに使う=
私はさらに進んで、そのような状況を避けるために比較するときは、おそらく左側にリテラルを置くべきだと言います。
のif(1 == $blue)
代わりにif($blue == 1)
=の代わりに==または===を使用してください。
'='は代入演算子であり、条件演算子は==または===です。
if (($red == "1") && ($blue == "1") )
{
$green = "hello";
}