php:复合if语句(被忽略)

jac*_*cob 2 php if-statement

如果子域不是"移动"且文件名不是"设计"或"照片",我想回应一些东西,所以echo if(不是"mobile"而不是"design")或(不是"mobile"而不是"照片").

我写的代码是:

<?php
    if ( ($subdomain != mobile) && ($currentFileName != design || $currentFileName != photo) ) {
        echo ('code')
    }
?>
Run Code Online (Sandbox Code Playgroud)

但它不喜欢复合语句.如果我这样做的($subdomain!=mobile)话; 如果我这样做的($currentFileName!=design)话; 如果我这样做的($currentFileName!=photo)话...... 上面的代码不会导致错误...它只是没有做任何事情.

是否有一种特殊的方法来复合/分组我刚才没有得到的陈述?我觉得这应该不难(而且我用PHP做了更复杂的事情而没有这么多麻烦......).我在此之后模拟了我的声明:http://www.php.net/manual/en/control-structures.if.php#101724

谢谢!

编辑:fyi:

$subdomain = implode(array_slice(array_reverse(explode('.', $baseURL)),2)); //resolves to "test"
$basename = basename($_SERVER['REQUEST_URI']); //resolves to "design.php"
$currentFileName = basename($basename, ".php"); //resolves to "design"
Run Code Online (Sandbox Code Playgroud)

新问题是子域"移动"中的所有内容现在都被捕获,因此其中没有任何页面从echo获取"代码"(即使不是"设计"或"照片").

我尝试过的最新代码是:

if ( ($subdomain != 'test' && $currentFileName != 'design') && ($subdomain!='test' && $currentFileName != 'photo') ) {
    echo ('ajax code');
}
Run Code Online (Sandbox Code Playgroud)

但仍然没有骰子:(

Cra*_*der 5

你的逻辑有一个缺陷.你很可能&&不想要||.如果你仔细考虑一下这句话就会显而易见.让我们假设以下场景:$ currentFileName是'design'.它会通过,因为它不是'照片'.如果我们将$ currentFileName设为'photo',它仍然会通过,因为它不等于'design'.

编辑:并请在比较字符串时使用引号.PHP将首先尝试使用该名称查找常量,然后假设它是一个字符串,因为它找不到.