2012-07-13 2 views
0

이 코드가 있는데 거기에 버그가 있지만 어디서 잘못 읽었는지 알 수 없습니다. 누군가 도와 주실 수 있습니까? 문제는 텍스트 파일의 내용을 부식시키기 위해 특정 이미지를 표시하려고한다는 것입니다. 차이가PHP - If 및 else 문

<?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

감사합니다 그냥 원인 내가 할 수있는 단 하나의 accpept .. – Nick

+1

당신이 하나의 파일에 우려를 혼합하지 않아야하지만, if ($ file) :?> Dan

답변

4

있다 : 나는 경우 한 Statment가 otherwize.Here 코드 말한다해도 (EG는 항상 녹색 나는 부분이 분류하지만이 이미지를 표시에 올 때 항상 버그가 있다고 생각 . 두 인스턴스를 비교하고 다른 하나를 할당 사이

당신의 조각에서 아래 라인을 참조 위의 단서와 함께 오류를 발견 할 수 있는지 :

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" to $file 다음에 $file의 값이 평가됩니다.

당신은 아마 true$file 값을 비교하는 것이다, if($file == true) 찾고 있습니다.

+0

환호 :) 이제 망할 것입니다! – Nick

+1

+1 스포일러! :))) – alfasin

+0

@ 니콜라스 아무 문제가 친구, 서비스 될 기꺼이! –

3

변수를 할당 할 때 사용되는 단일 =을 사용합니다 (비교하지 않음). 두 값이 같은지 확인하려면 ==을 사용하십시오.

2
if ($file == true) 
    { 
      echo "<img src=\"images/green.png\" width=\"15\" height=\"15\" />"; 
    } 

희망 그것은 상태를 확인하는 ==해야한다.

if ($file != "false") 
{ 
    echo "<img src=\"images/green.png\" width=\"15\" height=\"15\" />"; 
} 
1

을하는 데 도움이

1

"="하나뿐 아니라 "true"(연결 공간이 있음)와 비교할 수도 있습니다. 나는에 코드를 변경합니다 : 병 1 대답을 받아 :) 지적 해 모두를 가리키는 위해

if ($file === true) 
{ 
    echo "<img src=\"images/green.png\" width=\"15\" height=\"15\" />"; 
}