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

时间:2012-12-24 00:57:36

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

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

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

显然||部分有问题。

1 个答案:

答案 0 :(得分:12)

请勿重复if

像这样使用:

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

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
}