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