2017-07-28 73 views
-4

我想在一個頁面addtohomescreen.php只有在下列條件的邏輯:基本PHP如果多個語句

  1. $ua !== 'sattamatka.pro' - >真
  2. $ua !== 'sattamatka.android' - >真
  3. stripos($ua,'android') == true) - >真

注意:對於條件1 & 2如果其中一個是真的,另一個會自動變爲false。

我使用以下邏輯:

<?php 
if($ua !== 'sattamatka.pro' 
|| $ua !== 'sattamatka.android' 
&& stripos($ua,'android') == true) { 
include "addtohomescreen.php"; 
} 
?> 

注:我希望所有的人都如此。但是,如果我使用&&代替||,則兩條語句 - $ua !== 'sattamatka.pro'$ua !== 'sattamatka.android'都將變爲false,並且addtohomescreen.php包含在$ua中。

編輯:中$ua可能的瓦萊斯是:

  1. sattamatka.pro
  2. sattamatka.android
  3. mozilla/5.0 (linux; u; android 6.0.1; en-us; redmi note 3 build/mmb29m) applewebkit/534.30 (khtml, like gecko) version/4.0 ucbrowser/11.2.5.932 u3/0.8.0 mobile safari/534.30

更新:問題是爲$ua = 'sattamatka.pro'$ua = 'sattamatka.android'聲明if(($ua !== 'sattamatka.pro') && ($ua !== 'sattamatka.android') && (stripos($ua,'android') == true))返回false。這已通過將()添加到($ua !== 'sattamatka.pro') || ($ua !== 'sattamatka.android') &中解決,現在代碼可按預期工作。我不需要任何更多的建議。感謝您的時間。

+3

'&&'而不是'||'? –

+1

用'&&'替換'||' –

+0

因此,如果條件1爲真,你需要做些什麼***和***條件2是真的***和***條件3是真的?那麼你爲什麼使用*或*運算符'''? –

回答

0

我已經解決了這個問題,通過增加()前兩個語句:

<?php 
    $ua = strtolower($_SERVER['HTTP_USER_AGENT']); 
    if(($ua !== 'sattamatka.pro' 
    || $ua !== 'sattamatka.android') 
    && stripos($ua,'android') == true) { 
    include "addtohomescreen.php"; 
    } 
    else {} 
    ?> 

工作就像一個魅力!

+1

你知道上面的語句和'if(stripos($ ua,'android')== true)'是一樣的嗎?第一組將_always_返回true,因爲'$ ua'將至少不等於兩個檢查中的一個。 –

+0

@MagnusEriksson你不明白。讓我用簡單的語言給你解釋一下。如果$ ua是'sattamatka.pro'或'sattamatka.android',我不想包含'addtohomescreen.php',但是如果'$ ua'包含單詞'android',我想包含它,前兩個陳述必須始終爲真,如果不是,則其中一個陳述將變爲虛假。 –

+1

而你沒有聽。第一個檢查'($ ua!=='sattamatka.pro'|| $ ua!=='sattamatka.android')'_useless_,因爲該塊將_always_返回true。無論「$ ua」包含什麼,它都不會等於_one_,因此_always_會返回「true」。 –

1

您需要使用&&如果希望所有條件成爲true

if(($ua !== 'sattamatka.pro') && ($ua !== 'sattamatka.android') && (stripos($ua,'android') == true)) { 
include "addtohomescreen.php"; 
} 
+0

它與上面已經評論過的有什麼不同?對於小的拼寫錯誤或更正,如果可以通過添加評論來實現,則不要添加答案。 –

+0

我希望他們都是真的。但是,如果我用'&&'代替'||',那麼'$ ua!=='sattamatka.pro''和'$ ua!=='sattamatka.android''都會變成false並且是addtohomescreen。 php'包含在'$ ua'中 –