Php 为什么isset与语法匹配不起作用

Php 为什么isset与语法匹配不起作用,php,html,debugging,Php,Html,Debugging,我想知道,如果isset$\u POST[“items”]文本与reject1文本匹配,然后返回。我的代码不起作用为什么 if(isset($_POST["items"])==='reject1'){ echo 'text match :)'; } else { echo 'not match :('; } 试试这个 if(isset($_POST["items"]) && $_POST["items"]==='reject1'){ echo 'text ma

我想知道,如果isset
$\u POST[“items”]
文本与
reject1
文本匹配,然后返回。我的代码不起作用为什么

if(isset($_POST["items"])==='reject1'){
   echo 'text match :)';
}
else {
   echo 'not match :(';
}
试试这个

if(isset($_POST["items"]) && $_POST["items"]==='reject1'){
   echo 'text match :)';
}
else {
   echo 'not match :(';
}

它对你有用。

你必须这样写:

if(isset($_POST["items"]) && $_POST["items"]==='reject1'){
   echo 'text match :)';
}
else {
   echo 'not match :(';
}

因为
isset
仅返回truefalse,而不是值。

您应该使用内部if进行字符串比较

if(isset($_POST["items"])){
  if ($_POST["items"] ==='reject1'){
    echo 'text match :)';
  } else {
   echo 'not match :(';
  } 
}
php isset()返回true或false,因此它不能与“reject1”匹配。如果要匹配,应执行以下操作:

if($_POST["items"]==='reject1') {}
或者,如果要检查变量是否存在,可以执行以下操作:

if(isset($_POST["items"]) && $_POST["items"]==="reject1") {
echo "text match";} else { echo "not match"; }

isset
如果设置了变量,则返回
TRUE
;如果未设置变量,则返回
FALSE
TRUE
FALSE
都不等于
'reject1'
,因此将永远不会输入
if

您可以执行两阶段检查-首先检查是否设置了键,然后评估其值:

if(array_key_exists('items', $_POST) && $_POST['items'] === 'reject1') {
   echo 'text match :)';
} else {
   echo 'not match :(';
}
或者做一行:

echo (isset($_POST["items"]) && $_POST["items"]==='reject1')? 'text match :)' : 'not match :('; 
参考文献:

如果var存在且值不是NULL,则返回TRUE。否则就错了


Isset返回true或false。它不能匹配
reject1