基本PHP如果多个语句
我想在一个页面addtohomescreen.php
只有在下列条件的逻辑:基本PHP如果多个语句
-
$ua !== 'sattamatka.pro'
- >真 -
$ua !== 'sattamatka.android'
- >真 -
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
可能的瓦莱斯是:
sattamatka.pro
sattamatka.android
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')
&中解决,现在代码可按预期工作。我不需要任何更多的建议。感谢您的时间。
我已经解决了这个问题,通过增加()
前两个语句:
<?php
$ua = strtolower($_SERVER['HTTP_USER_AGENT']);
if(($ua !== 'sattamatka.pro'
|| $ua !== 'sattamatka.android')
&& stripos($ua,'android') == true) {
include "addtohomescreen.php";
}
else {}
?>
工作就像一个魅力!
你知道上面的语句和'if(stripos($ ua,'android')== true)'是一样的吗?第一组将_always_返回true,因为'$ ua'将至少不等于两个检查中的一个。 –
@MagnusEriksson你不明白。让我用简单的语言给你解释一下。如果$ ua是'sattamatka.pro'或'sattamatka.android',我不想包含'addtohomescreen.php',但是如果'$ ua'包含单词'android',我想包含它,前两个陈述必须始终为真,如果不是,则其中一个陈述将变为虚假。 –
而你没有听。第一个检查'($ ua!=='sattamatka.pro'|| $ ua!=='sattamatka.android')'_useless_,因为该块将_always_返回true。无论“$ ua”包含什么,它都不会等于_one_,因此_always_会返回“true”。 –
您需要使用&&
如果希望所有条件成为true
if(($ua !== 'sattamatka.pro') && ($ua !== 'sattamatka.android') && (stripos($ua,'android') == true)) {
include "addtohomescreen.php";
}
它与上面已经评论过的有什么不同?对于小的拼写错误或更正,如果可以通过添加评论来实现,则不要添加答案。 –
我希望他们都是真的。但是,如果我用'&&'代替'||',那么'$ ua!=='sattamatka.pro''和'$ ua!=='sattamatka.android''都会变成false并且是addtohomescreen。 php'包含在'$ ua'中 –
'&&'而不是'||'? –
用'&&'替换'||' –
因此,如果条件1为真,你需要做些什么***和***条件2是真的***和***条件3是真的?那么你为什么使用*或*运算符'''? –