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"

这是最常见的编程错误之一!!为了防止这种情况发生,程序员将常量放在 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

使用=====而不是=

'=' 是赋值运算符,条件运算符是=====

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

这是因为您使用=. 使用$blue == "1".

于 2012-04-27T06:51:16.207 回答
0

如果 (($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 回答