如题,判断为空时,如果是GET方式,用ISSET可以;
但如果是POST,只能用 if ($_POST['a']=="")
请问这是为什么呢,

解决方案 »

  1.   

    表单是用什么方式传送数据的?GET还是POST?
      

  2.   

    isset($_POST['a'])这个判断是可以的。
    你要确定你提交的表单中没有'a'这一项,那么这个判断就是false,否则即使'a'这项在表单中没有输出值,isset($_POST['a'])也是true。
      

  3.   

    isset -- 检测变量是否设置bool empty ( mixed var )
    如果 var 是非空或非零的值,则 empty() 返回 FALSE。换句话说,""、0、"0"、NULL、FALSE、array()、var $var; 以及没有任何属性的对象都将被认为是空的,如果 var 为空,则返回 TRUE。 
    <?php
    $var = 0;// 结果为 true,因为 $var 为空
    if (empty($var)) {  
        echo '$var is either 0 or not set at all';
    }// 结果为 false,因为 $var 已设置
    if (!isset($var)) { 
        echo '$var is not set at all';
    }
    ?> 是否设置跟为空不是相同的
      

  4.   

    楼主说的是isset($_GET)还是isset($_GET[''])啊
      

  5.   

    楼主说的是isset($_GET)还是isset($_GET['a'])啊
      

  6.   

    用isset($_POST['a'])来判断post提交中的a有没有值?
    那当然不行!
    <input type=text name=a id=a >
    这样post的话,$_POST['a']显然是存在的 只不过是空而已
    isset并不是用来判断变量中有没有值的  只是用来判断变量存不存在
      

  7.   

    isset()检查变量是否设置  empty表示该变量是否为空
      

  8.   

    不好意思,可能是我刚才有点瞌睡 没表达清楚我刚开始表单是用GET方式提交的,我检测是否为空的时候,程序处理页面用的if(!(isset($_GET['a'])))后来我只是把表单提交方式改为了post ,其他的例如input的名a是没有变的,
    程序处理页面把if(!(isset($_GET['a'])))改为了if(!(isset($_POST['a'])))
    但这样如果提交过来的a的值为空,他判断不出来,要用 if($_POST['a']=="")才可以
    希望这次表达清楚了,我只是想知道为什么用 if(!(isset($_POST['a']))) 不起作用
      

  9.   

    谢谢6楼7楼,小弟是新手, 以后这种情况知道不再用isset了
      

  10.   

    连if($_POST['a']=="")都可以,那么if(!(isset($_POST['a'])))应该更加可以了 
      

  11.   

    我实际的代码
    $jscode=$_POST['jscode']==""?0:$_POST['jscode'];
    这是可以的。下面这一条是原来的就不起作用
    $jscode=!(isset($_POST['jscode']))?0:$_POST['jscode'];