我一直在絞盡腦汁,並且無處可去。我可能錯過了一些非常簡單的事情,但我實際需要的是。如果一個字符串或另一個字符串等於第三個字符串
如果設置了字符串1或2,則與提供字符串3的字符串3進行比較不爲空。
if($_SESSION['code'] || $_GET['id'] <> $_POST['code'] && isset($_POST['code']))
我一直在絞盡腦汁,並且無處可去。我可能錯過了一些非常簡單的事情,但我實際需要的是。如果一個字符串或另一個字符串等於第三個字符串
如果設置了字符串1或2,則與提供字符串3的字符串3進行比較不爲空。
if($_SESSION['code'] || $_GET['id'] <> $_POST['code'] && isset($_POST['code']))
if(isset($string3) && ((isset($string1) && $string1 == $string3) || (isset($string2) && $string2 == $string3)))
像這樣的工作。首先看看isset $ string3。然後,包裹或操作員單獨檢查isset $字符串1或2,並且如果他們平等串3
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']) {
我不知道我跟隨,但你的邏輯似乎狀態:
if(isset($string3)){
if(isset($string1)){
strcmp($string1,$string3);
}elseif(isset($string2)){
strcmp($string2,$string3);
}
}
如果可能,我希望它全部在相同的if語句中。 – iceiceady
如果你打算根據條件做一個不同的strcmp,你不可能在技術上將所有內容都放在一個if中。如果你想把所有東西都放在同一條線上,你可以三元化。即$ res =(isset($ string3))? (isset($ string1))?strcmp($ string1,$ string3):strcmp($ string2,$ string3):null; –
if((!empty($_POST['code']) || !empty($_SESSION['code'])) && $_GET['id']<>$_POST['code']){
請解釋爲什麼你的答案會很好,不僅僅是一行代碼。參見[常見問題項目9](http://meta.stackexchange.com/a/118694/138309) –
這可能是
if(!empty($_SESSION['code']) && !empty($_GET['id']) && !empty($_POST['code'])
($_SESSION['code'] == $_POST['code'] || $_GET['id'] == $_POST['code']))
這意味着所有的變量必須設置,並具有值,那麼它相比較,如果$ _SESSION [ '代碼']或$ _GET [ 'ID']是等於$ _POST ['code']
你在比較什麼字符串3?另外,你在做什麼比較? – RonaldBarzell