0

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

<?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';
}
?>

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

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

所以显然这||部分有问题。

4

1 回答 1

12

不要重复if

像这样使用它:

if(foo || bar || ...)

IE

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

}

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

if(preg_match('/MSIE [6-8]/', $_SERVER['HTTP_USER_AGENT'])) {
    // do stuff
}
于 2012-12-24T00:58:46.130 回答