2015-09-11 225 views
0

編輯:該死的......這一切都是關於文件的路徑,不知何故我沒有想到重組:感謝@Machavity,我發現了這個問題。條件聲明混淆PHP


這段代碼有什麼問題?

如果$foo設置和文件存在file_exist()結果應該是1 否則,如果$foo設置,但文件不存在file_exist()結果應該是2 否則結果應該是3

但我只得到結果2的所有三個條件。 elseif的第二部分有問題。

if (isset ($foo) && file_exists ('bar.php')) 
{ 
    echo '1'; 
} 
else if (isset ($foo) && (! file_exists ('bar.php') )) 
{ 
    echo '2'; 
} 
else 
{ 
    echo '3'; 
} 
+1

而'$ foo'的值是? –

+3

和可能文件'bar.php'真的不存在? :)或者你需要設置正確的路徑到這個文件... –

回答

1

通常我不喜歡包裝,但嘗試像這樣重組。通過這種方式,您可以更好地瞭解什麼是失敗

if(isset($foo)) { 
    if(file_exists('bar.php')) { 
     echo '1'; 
    } else { 
     echo '2'; 
    } 
} else { 
    echo '3'; 
} 
+0

也許我錯過了一些東西,但重組實際上是否幫助/回答這個問題? –

+0

包裝應該使問題變得更加明顯(這似乎在'file_exists'部分) – Machavity

+0

可能應該是一個評論,但考慮到它有點大,評論,公平的doos。 :) –