PHP如果和语句导致问题

问题描述:

我试图使用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

您在使用场所的===

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

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

你等于唱歌是在明年condistions IF(($红色== “1”)& &($蓝色== “1”)){$绿色= “你好” 不正确; }

呀使用==代替=

我会进一步说,也许你应该把文字左手比较,以避免这种情况的时候。

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

您比较的是分配的,而不是$blue = 1就是为什么$蓝1

试试这个,如果(($红色== “1”)& &($蓝色== “1”)){$ green =“hello”; }

//您的代码是($蓝色= “1”) '=' 是在PHP比较赋值运算符是 '=='

使用=====代替=

的 '=' 是分配运算符,条件运营商=====

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