2012-12-24 62 views
0

我在嘗試||運算符。以下代碼的語法有什麼問題?帶||的語法錯誤運算符(PHP)

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

因此很明顯,有一些錯誤的||部分。

回答

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 
} 
+0

咱們打個賭上我們有多少個版本能想到的? :D – dbf

+0

謝謝! :) 我接受了這個答案,因爲你解釋了這個問題,甚至提出了一個更好的版本。 ;) – MultiformeIngegno