我在非常简单的php中的错误是什么?

我在非常简单的php中的错误是什么?,php,if-statement,Php,If Statement,我制作了一个非常简单的php来检查数据,但它不起作用 <?php $ngl="G"; if ($parsed[0][4]="0") { $ngl="NG"; } if ($parsed[0][5]="0") { $ngl="NG"; } ?> 但是我知道$parsed[0][4]和$parsed[0][5]是0。问题是输出是G,而不是NG!我还试图删除$ngl=“G”但是输出是空的 我需要修理什么 我只使用了,

我制作了一个非常简单的php来检查数据,但它不起作用

<?php
    $ngl="G";
    if ($parsed[0][4]="0") {
        $ngl="NG";
    }
    if ($parsed[0][5]="0") {
        $ngl="NG";
    }
?>
但是我知道
$parsed[0][4]
$parsed[0][5]
0
。问题是输出是
G
,而不是
NG
!我还试图删除
$ngl=“G”但是输出是空的

我需要修理什么


我只使用了,但它是正确的。thx all.

检查时使用
=
而不是
=

<?php
$ngl="G";
if ($parsed[0][4]=="0") {
$ngl="NG";
}
if ($parsed[0][5]=="0") {
$ngl="NG";
}
?>

您正在分配(
=
)一个值,而不是比较(
=
==


说明:

当您在if语句中放入一个赋值,如
$parsed[0][4]=“0”
,则
if
会将“0”计算为
false
。它只计算“0”的原因是因为行
$parsed[0][4]=“0”
(任何赋值)返回操作的右侧(“0”)

=
vs
==

=
是一个松散的比较,它不比较类型。ie
“2”==2
true
(即使一个是字符串,另一个是整数)

=
是一种严格的比较,既比较类型也比较值。ie
“2”==2
false


if语句对“0”使用前一个(松散的)比较,当然0是二进制的假值(0和1),因此
0==false
“0”==false
都计算为true-但是,
0==false
将返回false,因为
0
是一个整数,而
false
是一个布尔值。

您可以使用
=
来设置变量。您可以使用
==
进行比较

<?php
    $ngl="G";
    if ($parsed[0][4]=="0") {
        $ngl="NG";
    }
    if ($parsed[0][5]=="0") {
        $ngl="NG";
    }
?>

您应该使用
=
而不是
=

<?php
    $ngl="G";
    if ($parsed[0][4]=="0") {
        $ngl="NG";
    }
    if ($parsed[0][5]=="0") {
        $ngl="NG";
    }
?>

原因是
=
是赋值运算符,而
=
是比较运算符(这是您想要的)


$parsed[0][4]==“0”
将计算为
0
,这是错误的,因此不会更改
$ngl
。同样的情况发生在
$parsed[0][5]==“0”

这行没有检查$parsed[0][4]是否为零。它等于零

if ($parsed[0][4]="0") {
换成

if ($parsed[0][4]=="0") {

您将赋值运算符
=
与相等运算符
=
混淆,请尝试使用double
=
if($parsed[0][4]==“0”){
Hm…想知道谁会赢得这场比赛;-)@Fred好吧,我是第一个,所以以我的经验,不是我:我认为这个问题将创世界纪录-对于提到的
===
操作符,给出的大多数答案都是完全相同的+1,以及评估失败的原因。你能补充一些解释我们之间的差异吗如果我使用
==
==
?如果我使用
==
&&
|
,会发生什么?你能解释真值表以及所有这些运算符是如何影响这段代码的吗?所有这些运算符的“官方”解释在哪里?DevlshOne它们在这里不相关
<?php
    $ngl="G";
    if ($parsed[0][4]=="0") {
        $ngl="NG";
    }
    if ($parsed[0][5]=="0") {
        $ngl="NG";
    }
?>
if ($parsed[0][4]="0") {
if ($parsed[0][4]=="0") {