好像empty是指变量不存在,isset是指变量是否已赋值。

解决方案 »

  1.   

    回楼上,反了,empty是指变量是否为空,零,FALES等值,isset才是检测变量是否存在
      

  2.   

    isset是检查变量是否定义,EMPTY是检查变量是否为空
      

  3.   

    手册上不是说的非常清楚吗?empty
    (PHP 3, PHP 4, PHP 5 )empty -- 检查一个变量是否为空
    描述
    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';
    }
    ?>  
     
    注: 由于这是一个语言结构而非函数,因此它无法被“变量函数”调用。注: empty() 只检测变量,检测任何非变量的东西都将导致解析错误。换句话说,后边的语句将不会起作用: empty(addslashes($name))。 
      

  4.   

    我不明白如果用以下这种写法会出现报错信息,到底在哪里打开什么?才能看到报错信息啊?
    <?
      if($str)
        echo "ok";
    ?>
      

  5.   

    http://community.csdn.net/Expert/TopicView.asp?id=3801598
    这是我原来对问题的提问,及各位大侠们的回答
    syre(神仙) 说:
    --------------
    如果不存在
    empty会报错的php_love(学习PHP,做个好人)说:
    -----------------------------
    empty汉语空的,
    if($str)
    与if(!empty($str))
    是等价的ice_berg16(寻梦的稻草人)的回答是正确的
    -------------------------------------
    to php_love
    这两个是不一样的!
    第一个会报错,第二个不会hahawen(变态的大龄青年)说:
    --------------------------------
    哈哈,哪有这么麻烦啊
    if (!$var) {
       return TRUE;
    }
    else {
       return FALSE;
    } ustb(偶然) 的解答也是正确的
      

  6.   

    呵呵,怪不得很多程序中用到了isset和empty,原来直接会报错的
      

  7.   

    这两个是有区别的.楼上已经有人说过了.再有,就是有些报错与不报是在php.ini里设置的