【问题标题】:Conditional Statement confusion PHP条件语句混淆 PHP
【发布时间】:2015-12-08 05:01:49
【问题描述】:

编辑:该死的......这都是关于文件路径的,不知何故我没想过重组:|感谢@Machavity,我发现了问题。


这段代码有什么问题?

如果设置了$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';
}

【问题讨论】:

  • $foo的值是?
  • 并且可能文件'bar.php'真的不存在? :) 或者您需要设置此文件的正确路径...

标签: php if-statement conditional


【解决方案1】:

通常我不喜欢包装,但尝试像这样进行重组。这样您就可以更好地了解失败的原因

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

【讨论】:

  • 也许我遗漏了什么,但重组真的有助于/回答问题吗?
  • 包装应该让问题出在哪里更明显(这似乎在file_exists部分)
  • 那么可能应该是评论,但考虑到评论有点大,公平的doos。 :)
  • 非常感谢哥们,我找到了问题,重组确实有帮助:)
  • @JonStirling 没有重组建议不是问题的答案,而是导致答案的建议,它确实帮助我缩小了问题范围,否则我浪费了所有时间认为我不是正确使用条件语句,而问题出在其他地方。我会鼓励这样的建议,是的,在答案中包含代码比在评论中更好。
猜你喜欢
  • 1970-01-01
  • 2014-02-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多