Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/268.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php isset()存在未定义的索引错误?_Php_Isset_Undefined Index - Fatal编程技术网

Php isset()存在未定义的索引错误?

Php isset()存在未定义的索引错误?,php,isset,undefined-index,Php,Isset,Undefined Index,我是否错过了一些我没有看到的东西,这些东西会为代码抛出一个未定义的索引错误?在测试functions.php中添加的代码时,如果$\u POST['sub']未通过,它会抛出下面未定义的索引错误,但是针对完全相同的POST变量“sub”的相同isset()测试会在第494行上方执行大约12次,而不会抛出错误。我错过了什么 PHP错误 注意:未定义索引:sub in /第494行的home/path/public_html/dtest/includes/functions.php 第494行代码

我是否错过了一些我没有看到的东西,这些东西会为代码抛出一个未定义的索引错误?在测试functions.php中添加的代码时,如果
$\u POST['sub']
未通过,它会抛出下面未定义的索引错误,但是针对完全相同的POST变量“sub”的相同
isset()
测试会在第494行上方执行大约12次,而不会抛出错误。我错过了什么

PHP错误

注意:未定义索引:sub in /第494行的home/path/public_html/dtest/includes/functions.php

第494行代码

if (isset($_POST['sub']) && $_POST['sub'] == "ritem") {
    $id = $_POST['ritemid'];
    unset($_SESSION['cart']['items'][$id]);
    header("Location: ".$_SERVER['HTTP_REFERER']."");
    die();
} else {
    echo $_POST['sub'];
}

删除
echo$_POST['sub']来自负责此
未定义索引通知的
else
部分,并替换为
echo
语句

应该是这样的

<?php

if (isset($_POST['sub']) && $_POST['sub']=="ritem") {
    $id=$_POST['ritemid'];
    unset ($_SESSION['cart']['items'][$id]);
    header("Location: ".$_SERVER['HTTP_REFERER']."");die();}
else
{
 echo "The subject is not set";    
}

是因为其他情况

if (isset($_POST['sub']) && $_POST['sub']=="ritem") {
  $id=$_POST['ritemid'];
  unset ($_SESSION['cart']['items'][$id]);
  header("Location: ".$_SERVER['HTTP_REFERER']."");
  die();
} else if(isset($_POST['sub'])) {
  echo $_POST['sub'];
} else {
  // Do something else here
}

你必须先使用isset,然后检查它是否为“ritem”@Chitowns24,但他的错误是未定义的索引sub-me认为这不是全部代码是的,我只是重新查看了一下agree@MikeB这就是它的全部代码,但下面的答案是正确的——现在我从上到下看,这句话的其他部分应该在一段时间前删除。看起来它被放在那里了。这就是为什么有行长度限制和标准不允许单线控制结构的原因。干净的代码看起来是这样的谢谢-在回顾ELSE语句之后,它应该在早期版本中被删除,而有人忽略了它并将其留在其中。删除它解决了这个问题-很抱歉,这是一件微不足道的事情,我想我和其他开发人员一样对忽略它感到内疚