私は少し頭を悩ませていて、どこにも行きません。私はおそらく本当に単純なものを見逃していますが、私が効果的に必要としているのは.
文字列 1 または 2 が設定されている場合は、文字列 3 が null でない場合に文字列 3 と比較します。
if($_SESSION['code'] || $_GET['id'] <> $_POST['code'] && isset($_POST['code']))
私がフォローしているかどうかはわかりませんが、あなたの論理は次のように述べているようです:
if(isset($string3)){
if(isset($string1)){
strcmp($string1,$string3);
}elseif(isset($string2)){
strcmp($string2,$string3);
}
}
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((!empty($_POST['code']) || !empty($_SESSION['code'])) && $_GET['id']<>$_POST['code']){
これは可能性があります
if(!empty($_SESSION['code']) && !empty($_GET['id']) && !empty($_POST['code'])
($_SESSION['code'] == $_POST['code'] || $_GET['id'] == $_POST['code']))
これは、すべての変数を設定して値を持たなければならないことを意味し、$_SESSION['code'] または $_GET['id'] が $_POST['code'] と等しいかどうかを比較します。
if(isset($string3) && ((isset($string1) && $string1 == $string3) || (isset($string2) && $string2 == $string3)))
このようなものがうまくいくでしょう。最初に $string3 が設定されているかどうかを確認します。次に、isset $string1 または 2 を個別にチェックするラップされた or 演算子と、それらが文字列 3 に等しいかどうかを調べます。