||语法错误 运算符(PHP)

Mul*_*gno 0 php syntax operators

我正在尝试||运营商.以下代码的语法有什么问题?

<?php
if(strstr($_SERVER['HTTP_USER_AGENT'], 'MSIE 6')) || if(strstr($_SERVER['HTTP_USER_AGENT'], 'MSIE 7')) || if(strstr($_SERVER['HTTP_USER_AGENT'], 'MSIE 8'))
{
    echo 'something';
}
?>
Run Code Online (Sandbox Code Playgroud)

但是,以下代码工作正常:

<?php
if(strstr($_SERVER['HTTP_USER_AGENT'], 'MSIE 6')) {
    echo 'something';
}
?>
Run Code Online (Sandbox Code Playgroud)

显然这||部分有问题.

Thi*_*ter 12

不要重复if.

像这样使用它:

if(foo || bar || ...)
Run Code Online (Sandbox Code Playgroud)

if(strstr($_SERVER['HTTP_USER_AGENT'],'MSIE 6') ||
   strstr($_SERVER['HTTP_USER_AGENT'],'MSIE 7') ||
   strstr($_SERVER['HTTP_USER_AGENT'],'MSIE 8')) {

}
Run Code Online (Sandbox Code Playgroud)

一个更好的版本是这样的:

if(preg_match('/MSIE [6-8]/', $_SERVER['HTTP_USER_AGENT'])) {
    // do stuff
}
Run Code Online (Sandbox Code Playgroud)