PHP!=和==运算符

Whi*_*tey 3 php

这让我感到困惑了一段时间.我正在浏览目录并回显其内容,我想排除".."和"." 文件.

现在,这段代码有效:

if ($files = scandir("temp/"))
{
    foreach ($files as $file)
    {
        if ($file == ".." OR $file == ".")
        {
        }
        else {
            echo $file;
            echo "<br>";
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

但这不......

if ($files = scandir("temp/"))
{
    foreach ($files as $file)
    {
        if ($file != ".." OR $file != ".")
        {
            echo $file;
            echo "<br>";
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

出于显而易见的原因,第二块代码更符合我的要求,因为我真的很讨厌真正的声明什么都不做.

Fra*_*anz 22

如果否定由两个单一条件和一个连词("和"或"或")组成的条件,则需要单独否定每个条件并使用另一个连词.

所以试试这个:

if ($file != ".." AND $file != ".")
Run Code Online (Sandbox Code Playgroud)

  • 德莫根定律+1!http://en.wikipedia.org/wiki/De_Morgan%27s_laws (5认同)

Ewa*_*odd 9

这是德摩根法律之一.

not (A OR B) = (not A) AND (not B)
Run Code Online (Sandbox Code Playgroud)

您所做的更改是一个名为Reverse Conditional重构