PHP: - 注意:未定义索引:在第32行输入C:\ xxx \ xxx \ xxx.php

时间:2013-10-20 16:58:37

标签: php

我正在尝试这个:

if( ! isset( $_SESSION['type'] ) and !$_SESSION['type'] == "0") 
{
    echo "something";
}

我会得到输出:

  

注意:未定义索引:在第32行输入x:\ xxx \ xxx \ xxx.php

我该如何解决这个问题?

4 个答案:

答案 0 :(得分:3)

如果您尝试从不存在的数组键读取,PHP将发出警告(通知)。 isset()不会发出警告。

但是,如果未设置'type',则保证代码可以执行此操作,因为如果未设置类型键,if的后半部分将会运行。

目前还不清楚你想要完成什么。也许你的意思是:

if (!isset($_SESSION['type']) || $_SESSION['type'] == '0') 
{
  echo "something";
}

但理想情况下你会做这样的事情:

if (!isset($_SESSION['type']))
{
  $_SESSION['type'] = '0'; // set default value
}

现在剩下的代码可以假设它存在。

答案 1 :(得分:0)

你的第一个声明是说它没有设置....删除第一个不是(!)。

试试这个:

if(  isset( $_SESSION['type'] ) && ( $_SESSION['type'] !== "0")) {

   echo "something";
}

答案 2 :(得分:0)

( isset( $_SESSION['type'] ) == false || $_SESSION['type'] != "0") ? 'something' : ''; 

答案 3 :(得分:0)

我认为这个答案是一个很好的方法:

if(  isset( $_SESSION['type'] ) && ( !$_SESSION['type'] == "0")) {

   echo "something";
}

这就是说如果会话变量类型设置且不等于零,则回显。这是你在找什么?