我有这个代码,但它有一个错误,但我看不出我出错的地方。有人可以帮忙吗?问题是我试图显示某个图像与文本文件的内容腐蚀。我认为我已经对那部分进行了排序,但是当涉及到显示图像时,总会有一个错误(即使if if statment表示otherwize,它总是绿色的。这是代码:
<?php
if (empty($_GET['unit'])) {
$output="Please Enter A Unit Number";
echo $output;
}
else {
$filepathhalf = "/data/";
$file = "false";
$date = date("Ymd");
$unitnum = $_GET['unit'];
$ext = ".txt";
$filepath = $filepathhalf.$unitnum.$date.$ext;
echo $filepath;
echo $file;
if(file_exists($filepath))
{
$fh = fopen($filepath, 'r');
$file = fread($fh, 5);
fclose($fh);
}
echo $file; //This echo comes back as false as set but the green.png image still displays.
if ($file = "true ")
{
echo "<img src=\"images/green.png\" width=\"15\" height=\"15\" />";
}
else
{
echo "<img src=\"images/red.png\" width=\"15\" height=\"15\" />";
}
echo $_GET['unit'];
}
?>
答案 0 :(得分:4)
比较两个实例并将一个实例分配给另一个实例之间存在差异。
从您的代码段中查看以下几行,看看您是否可以通过上述线索发现错误:
if ($file = "true ")
{
echo "<img src=\"images/green.png\" width=\"15\" height=\"15\" />";
}
else
{
echo "<img src=\"images/red.png\" width=\"15\" height=\"15\" />";
}
否则将鼠标悬停在下方的扰流板上!
如果您需要有关该问题的解释,请执行相同的操作......
$file = "true "
将始终评估为true,首先是它 将字符串“true”分配给$file
,然后将值< 将评估$file
。
您很可能正在寻找if($file == true)
,比较$file
与true
的值。
答案 1 :(得分:3)
您使用单个=
,在分配变量时使用,而不是比较它们。检查两个值是否相等时,请使用==
。
答案 2 :(得分:2)
if ($file == true)
{
echo "<img src=\"images/green.png\" width=\"15\" height=\"15\" />";
}
希望有所帮助
答案 3 :(得分:1)
检查条件应该是==
。
if ($file != "false")
{
echo "<img src=\"images/green.png\" width=\"15\" height=\"15\" />";
}
答案 4 :(得分:1)
不仅你使用单个“=”而且还将它与“true”(带有连接空格!)进行比较。我会将代码更改为:
if ($file === true)
{
echo "<img src=\"images/green.png\" width=\"15\" height=\"15\" />";
}