我想问下if($a)和if(!empty($a))还有if($a!="")有什么区别么,哪位好心人给解释下啊

解决方案 »

  1.   

    ""、0、"0"、NULL、FALSE、array()、var $var;以及没有任何属性的对象都被认为是空  empty会返回ture 
    另外两种判断都相当于是empty中的一个子集
      

  2.   

    if($a) a是否为真,0 ,null ,'' false 都为 假empty($a)  ""、0、"0"、NULL、FALSE、array()、var $var; 以及没有任何属性的对象都将被认为是空的,如果 var 为空,则返回 TRUE。$a!='' 很明显,$a 为字符串,且不等于''空 串
      

  3.   

    那在输出$a后显示undefined是哪种情况呢?
      

  4.   

    bool empty ( mixed var )
    如果 var 是非空或非零的值,则 empty() 返回 FALSE。换句话说,""、0、"0"、NULL、FALSE、array()、var $var; 以及没有任何属性的对象都将被认为是空的,如果 var 为空,则返回 TRUE。 除了当变量没有置值时不产生警告之外,empty() 是 (boolean) var 的反义词。参见转换为布尔值获取更多信息。 例子 1. empty() 与 isset() 的一个简单比较。 <?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';
    }
    ?>  
     
      

  5.   

    我想判断一个值是否为空开始用
    echo $a;
    if(empty($a))
    echo "空";
    else
    echo "有值";结果输出的是undefined有值,我就疯了
      

  6.   

    看了你前面的帖子,
    undefined是js里的。
    是你js的问题吧??
      

  7.   

    对,就是没有传过来,我做的一个验证,可是密码能传过来,用户名和邮箱就是undefined
    很郁闷
      

  8.   

    大概是被你用js处理过而又没有处理好,注意一下js中表单域名称之类的有没有写错...
      

  9.   

    php手册->PHP 类型比较表 上面有详细说明..
      

  10.   

    哈哈,解决啦,我上个帖子dingsongtao也没有发现,我获取不到是因为div的id和用户input的id重了,这样的话,我getElementById就获取不到我输入的东西啦,哈哈,困扰了2天的问题终于解决啦,一一给分