检查当前域和PHP变量+;压缩码

检查当前域和PHP变量+;压缩码,php,Php,我要做的是检查当前域中的2个不同域+一些变量,因此目前我有以下内容: if ( $_SERVER['HTTP_HOST']=="http://example1.com" && $var1 || $_SERVER['HTTP_HOST']=="http://example1.com" && $var2 || $_SERVER['HTTP_HOST']=="http://example1.com" && $var3) {

我要做的是检查当前域中的2个不同域+一些变量,因此目前我有以下内容:

    if ( $_SERVER['HTTP_HOST']=="http://example1.com" && $var1 || 
$_SERVER['HTTP_HOST']=="http://example1.com" && $var2 || 
$_SERVER['HTTP_HOST']=="http://example1.com" && $var3) {
            header("Location: page1.php?". $_SERVER['QUERY_STRING']);
        }

    elseif ( $_SERVER['HTTP_HOST']=="http://example2.com" && $var1 || 
$_SERVER['HTTP_HOST']=="http://example2.com" && $var2 || 
$_SERVER['HTTP_HOST']=="http://example2.com" && $var3 ) {
            header("Location: page2.php?". $_SERVER['QUERY_STRING']);
        }
     else { echo "..."

}

我每个变量只有3个,但总共有10个,所以压缩这段代码的最佳方法是什么,这样我就不用使用这么多行代码了?

我认为您不需要每次都使用HTTP条件

$else = false;
if($var1 or $var2 or $var3) {
    if($_SERVER['HTTP_HOST'] == "http://example1.com") {
        header("Location: page1.php?". $_SERVER['QUERY_STRING']);
    } elseif($_SERVER['HTTP_HOST']=="http://example2.com") {
        header("Location: page2.php?". $_SERVER['QUERY_STRING']);
    } else {
        $else = true;
    }
} else {
    $else = true;
}
if($else) {
    echo "...";
}
if($var1 || $var2 || $var3) {
    if(strpos($_SERVER['HTTP_HOST'], "example1.com") !== false) {
        header("Location: page1.php?". $_SERVER['QUERY_STRING']);
    } elseif(strpos($_SERVER['HTTP_HOST'],"example2.com") !== false) {
        header("Location: page2.php?". $_SERVER['QUERY_STRING']);
    } 
}
或者你可以在两行中完成

if(strpos($_SERVER['HTTP_HOST'], "example1.com") !== false && ($var || $var2 || $var3) {
    header("Location: page1.php?". $_SERVER['QUERY_STRING']);
}

在Joe Bobby的代码中,如果var1、var2、var3都不是真的,那么else代码也会运行。是的,那么这是我们两个答案的混合。@Stony得到错误
Parse error:syntax error,意外的“&&”
,底部代码。我用1
$var
尝试了jsut,看看这是否能解决任何问题,但没有解决
$domain = $_SERVER['HTTP_HOST'];
if($domain == 'http://example1.com' && ($var1 || $var2 || $var3)){
    header("Location: page1.php?". $_SERVER['QUERY_STRING']);
}elseif( $domain == 'http://example2.com' && ($var1 || $var2 || $var3)){
    header("Location: page2.php?". $_SERVER['QUERY_STRING']);
}else{
    echo "..."
}