0

我有这段代码,其中有一个错误,但我看不出哪里出错了。有人可以帮忙吗?问题是我试图显示某个图像以与文本文件的内容相对应。我想我已经对那部分进行了排序,但是在显示图像时总是有一个错误(例如,即使 if 语句说 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']; 
            }
            ?>  
4

5 回答 5

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),它将比较$fileto的值true

于 2012-07-13T05:24:28.933 回答
3

您使用 single =,它在分配变量时使用,而不是比较它们。检查两个值是否相等时,使用==.

于 2012-07-13T05:24:46.970 回答
2
  if ($file == true)
  {
          echo "<img src=\"images/green.png\" width=\"15\" height=\"15\" />";
  }   

希望有帮助

于 2012-07-13T05:25:05.700 回答
1

应该是==检查状态。

 if ($file != "false")
 {
   echo "<img src=\"images/green.png\" width=\"15\" height=\"15\" />";
 } 
于 2012-07-13T05:25:25.470 回答
1

您不仅使用了单个“=”,而且还将其与“true”进行了比较(带有连接的空格!)。我会将代码更改为:

if ($file === true)
{
   echo "<img src=\"images/green.png\" width=\"15\" height=\"15\" />";
}
于 2012-07-13T05:25:27.957 回答