2015-09-11 178 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。 :) –