PHP - If和else语句

时间:2012-07-13 05:21:59

标签: php if-statement

我有这个代码,但它有一个错误,但我看不出我出错的地方。有人可以帮忙吗?问题是我试图显示某个图像与文本文件的内容腐蚀。我认为我已经对那部分进行了排序,但是当涉及到显示图像时,总会有一个错误(即使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']; 
            }
            ?>  

5 个答案:

答案 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)比较 $filetrue的值。

答案 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\" />";
}