PHP!=和==运算符

这让我有一阵子让我非常吃惊。 我正在浏览一个目录并回显其内容,我想排除“..”和“。”。 文件。

现在,这段代码有效:

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

但是这不...

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

出于显而易见的原因,第二批代码更多是我想要的,因为我真的很讨厌让真正的陈述无所作为。


如果您否定由两个单一条件和一个连词(“和”或“或”)组成的条件,则需要单独否定每个条件并使用其他连词。

所以试试这个:

if ($file != ".." AND $file != ".")

这是德摩根的法律之一。

not (A OR B) = (not A) AND (not B)

您所做的更改是一种称为反向条件的重构


他们不是相反的...

查看摩根法律。

if($file != ".." OR $file != ".")

应该

if($file != ".." AND $file != ".")
链接地址: http://www.djcxy.com/p/1793.html

上一篇: PHP != and == operators

下一篇: The 3 different equals