isset和is_nullis_null($_SESSION['username'])这里会报username未定义
isset($_SESSION['username'])这样就是正常的。求解

解决方案 »

  1.   

    原理如下,
    isset是检验变量是否存在,不存在返回false;
    is_null是检验变量是不是null值,前提是变量已存在,而如果你没有设置此变量肯定会提示错误的。
      

  2.   

    empty有像issetLZ问题,当isset判断变量,只有当变量存在并且值非null的时候,返回trueis_null则判断这个值是否为null   如果变量未定义,就有个warning另外,empty只有该变量存在,并且非0,非空的时候,返回false  跟isset不同,变量null返回true
      

  3.   

    额  我是按.NET的逻辑来的
    登陆的时候我会往Session里存入一个值。
    然后我每个页面都会判断它是否为空。
    么想到在PHP里就报错了    那我用try把is_null($_SESSION['username'])括起来就没错了
      

  4.   


    $arr = array();
    if (empty($arr['data']))
    {
        echo 'no data';
    }
    else
    {
        echo 'data';
    }只要一个empty即可