2012-11-28 230 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']

相關問題