我正在尝试||
运算符。以下代码的语法有什么问题?
<?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';
}
?>
显然||
部分有问题。
答案 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
}