我制作了一个非常简单的php来检查数据,但它不起作用。
<?php
$ngl="G";
if ($parsed[0][4]="0") {
$ngl="NG";
}
if ($parsed[0][5]="0") {
$ngl="NG";
}
?>
和
的输出<?php echo $ngl; ?>
总是
G
但我知道$parsed[0][4]
和$parsed[0][5]
是0
。问题是输出是G
而不是NG
!我也试图删除$ngl="G";
,但输出什么都没有。
我需要修理什么?
我只是使用=但==它是正确的。 thx all。
答案 0 :(得分:1)
您要为(=
)分配值而不是比较(==
或===
)
<?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 ===
: php.net - Comparison Operators
==
是一个松散的比较,不比较类型。即"2" == 2
是true
(即使一个是字符串,另一个是整数)
===
是一种严格的比较,比较类型和值。即"2" === 2
是false
if语句在“0”上使用前(松散)比较,当然0是二进制(0和1)中的假值,因此0 == false
和"0" == false
都评估为true - 但是,0 === false
将返回false,因为0
是一个整数,而false
是一个布尔值。
答案 1 :(得分:0)
检查
时使用==
而非=
<?php
$ngl="G";
if ($parsed[0][4]=="0") {
$ngl="NG";
}
if ($parsed[0][5]=="0") {
$ngl="NG";
}
?>
答案 2 :(得分:0)
您使用=
来设置变量。您可以使用==
进行比较。
<?php
$ngl="G";
if ($parsed[0][4]=="0") {
$ngl="NG";
}
if ($parsed[0][5]=="0") {
$ngl="NG";
}
?>
答案 3 :(得分:0)
您应该使用==
而不是=
:
<?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"
答案 4 :(得分:0)
此行不检查$ parsed [0] [4]是否为零。它使它为零。
if ($parsed[0][4]="0") {
将其更改为
if ($parsed[0][4]=="0") {