2012-11-28 210 views
0

我一直在绞尽脑汁,并且无处可去。我可能错过了一些非常简单的事情,但我实际需要的是。如果一个字符串或另一个字符串等于第三个字符串

如果设置了字符串1或2,则与提供字符串3的字符串3进行比较不为空。

if($_SESSION['code'] || $_GET['id'] <> $_POST['code'] && isset($_POST['code'])) 
+0

你在比较什么字符串3?另外,你在做什么比较? – RonaldBarzell

回答

0
if(isset($string3) && ((isset($string1) && $string1 == $string3) || (isset($string2) && $string2 == $string3))) 

像这样的工作。首先看看isset $ string3。然后,包裹或操作员单独检查isset $字符串1或2,并且如果他们平等串3

0
if(($a = $_SESSION['code'] ? $_SESSION['code'] : $_GET['id']) 
&& isset($_POST['code']) && $a == $_POST['code']) { 

如果你想$_GET['id']覆盖$_SESSION['code']在两者都设定的情况:更准确地说

if(($a = $_GET['id'] ? $_GET['id'] : $_SESSION['code']) 
&& isset($_POST['code']) && $a == $_POST['code']) { 

if((isset($_SESSION['code']) || isset($_GET['id'])) 
&& ($a = isset($_GET['id']) ? $_GET['id'] : $_SESSION['code']) 
&& isset($_POST['code']) && $a == $_POST['code']) { 
1

我不知道我跟随,但你的逻辑似乎状态:

if(isset($string3)){ 
    if(isset($string1)){ 
     strcmp($string1,$string3); 
    }elseif(isset($string2)){ 
     strcmp($string2,$string3); 
    } 
} 
+0

如果可能,我希望它全部在相同的if语句中。 – iceiceady

+0

如果你打算根据条件做一个不同的strcmp,你不可能在技术上将所有内容都放在一个if中。如果你想把所有东西都放在同一条线上,你可以三元化。即$ res =(isset($ string3))? (isset($ string1))?strcmp($ string1,$ string3):strcmp($ string2,$ string3):null; –

0
if((!empty($_POST['code']) || !empty($_SESSION['code'])) && $_GET['id']<>$_POST['code']){ 
+0

请解释为什么你的答案会很好,不仅仅是一行代码。参见[常见问题项目9](http://meta.stackexchange.com/a/118694/138309) –

0

这可能是

if(!empty($_SESSION['code']) && !empty($_GET['id']) && !empty($_POST['code']) 
    ($_SESSION['code'] == $_POST['code'] || $_GET['id'] == $_POST['code'])) 

这意味着所有的变量必须设置,并具有值,那么它相比较,如果$ _SESSION [ '代码']或$ _GET [ 'ID']是等于$ _POST ['code']

相关问题