2011-08-01 27 views
0

我創建了一段代碼,用於從json格式的文件中讀取信息,並且應對每個「狀態代碼」做出不同的響應。一切都有效,但即使它看起來不是真實的,一個聲明也會運行。該聲明標有星號。JSON文件已損壞或不可用渲染1已啓動並正在運行渲染2已啓動並正在運行

<?php 
    $file = file_get_contents("/system/status"); //Get status file 
    $output = json_decode($file); //Decode it into variables 
    $render1 = 0; //Declare variables 
    $render2 = 0; 

    if ($output->render1 & $output->render2) //If variable not available, do not replace 
    { 
     $render1 = $output->render1; 
     $render2 = $output->render2; 
    } 

    if ($render1 || $render2 != 1 || 2 || 3) //If value is zero, item is corrupt 
    { 
     echo "Status file is corrupt or unavailable"; ***** This always runs, no matter 
     *******what the actual value 
    } 

    if ($render1 == 1) 
    { 
     echo "Render 1 is up and running"; 
    } 

    if ($render2 == 1) 
    { 
     echo "Render 2 is up and running"; 
    } 

    if ($render1 == 2) 
    { 
     echo "Render 1 is offline"; 
    } 

    if ($render2 == 2) 
    { 
     echo "Render 2 is offline"; 
    } 

    if ($render1 == 3) 
    { 
     echo "Render 1 is offline for scheduled maintinance"; 
    } 

    if ($render2 == 3) 
    { 
     echo "Render 2 is offline for scheduled maintinance"; 
    } 
    ?> 

如果$ render1和$ render2變量是1,我的程序將輸出 狀態文件已損壞或不可用渲染1啓動並運行渲染2和運行 任何想法?

回答

1
if ($render1 || $render2 != 1 || 2 || 3) 

是不是要去工作,basicly你是問,如果render1 $或者$ render2不eequals 1,或2,或3 2和3將永遠是真實的,所以,如果總是觸發

0

這可能有幫助

if ($render1 || !in_array($render2, array(1, 2, 3))) 
相關問題