empty() 与 isset() 的一个简单比较

转载 2007年09月27日 13:54:00
bool isset ( mixed var [, mixed var [, ...]])


如果 var 存在则返回 TRUE,否则返回 FALSE。

如果已经使用 unset() 释放了一个变量之后,它将不再是 isset()。若使用 isset() 测试一个被设置成 NULL 的变量,将返回 FALSE。同时要注意的是一个 NULL 字节("/0")并不等同于 PHP 的 NULL 常数。

警告: isset() 只能用于变量,因为传递任何其它参数都将造成解析错误。若想检测常量是否已设置,可使用 defined() 函数。


[code]<?php

$var = '';

// 结果为 TRUE,所以后边的文本将被打印出来。
if (isset($var)) {
    print "This var is set set so I will print.";
}

// 在后边的例子中,我们将使用 var_dump 输出 isset() 的返回值。

$a = "test";
$b = "anothertest";

var_dump( isset($a) );      // TRUE
var_dump( isset ($a, $b) ); // TRUE

unset ($a);

var_dump( isset ($a) );     // FALSE
var_dump( isset ($a, $b) ); // FALSE

$foo = NULL;
var_dump( isset ($foo) );   // FALSE

?>  [/code]


这对于数组中的元素也同样有效:
[code]<?php

$a = array ('test' => 1, 'hello' => NULL);

var_dump( isset ($a['test']) );            // TRUE
var_dump( isset ($a['foo']) );             // FALSE
var_dump( isset ($a['hello']) );           // FALSE

// 键 'hello' 的值等于 NULL,所以被认为是未置值的。
// 如果想检测 NULL 键值,可以试试下边的方法。
var_dump( array_key_exists('hello', $a) ); // TRUE

?>  
[/code]
empty -- 检查一个变量是否为空
描述
bool empty ( mixed var)


如果 var 是非空或非零的值,则 empty() 返回 FALSE。换句话说,""、0、"0"、NULL、FALSE、array()、var $var; 以及没有任何属性的对象都将被认为是空的,如果 var 为空,则返回 TRUE。

除了当变量没有置值时不产生警告之外,empty() 是 (boolean) var 的反义词。参见转换为布尔值获取更多信息。
[code]例子 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';
}
?>  [/code]


注: 由于这是一个语言结构而非函数,因此它无法被“变量函数”调用。

注: empty() 只检测变量,检测任何非变量的东西都将导致解析错误。换句话说,后边的语句将不会起作用: empty(addslashes($name))。
 

empty和isset的区别

今天再做一个功能时,需要检测检测数据库某个字段为是否为空,特地复习了一个下几个检测函数复习一下。 1、empty判断一个变量是否为空 null、false、00、0、’0′、』。都会返回true。...
  • qiangzaiying123
  • qiangzaiying123
  • 2017年03月14日 22:32
  • 407

empty() 与 isset()的一个简单比较。

empty() 与 的一个简单比较。   $var = 0; // 结果为 true,因为 $var 为空 if (empty($var)) { echo '$var is ...
  • EI__Nino
  • EI__Nino
  • 2012年02月06日 10:42
  • 641

判断变量是否不为空,函数isset()、!empty()与!is_null()的比较

判断变量的值,尤其是判断他们是否不为空,我们有以下4种方法: if(isset($test)) true:变量已被赋值/设置 if(!empty($test)) true:变量不为空 if(!is_...
  • sinat_18308267
  • sinat_18308267
  • 2016年01月06日 15:34
  • 2712

isset()与empty()区别

他们的共同点:     都可以判定一个变量是否为空;     都返回boolean类型,即true或false。isset()用来检测变量是否设置,只能用于变量,因为传递任何其它参...
  • shenpengchao
  • shenpengchao
  • 2016年08月20日 14:38
  • 227

php中empty,isset和array_key_exists的区别和技巧

1. 关于empty 1.判断一个变量是否为空,注意这个”空“,null,0,false。都属于空 实际上,当值为0的时候,咋能认为他是“空”呢? 以下的情况将被考虑为空 * 0 (0...
  • wjc19911118
  • wjc19911118
  • 2015年09月16日 16:13
  • 1221

empty(), is_null(), isset()(区别)

empty(), is_null(), isset()真值表(区别) 1、当变量未定义时,is_null()和“参数本身”是不允许作为参数判断的,会报Notice警告错误;     2...
  • u010566813
  • u010566813
  • 2015年08月26日 03:35
  • 441

PHP之——isset与empty的区别

isset(变量)判断变量是否存在,或者变量是否为null,如果存在就是true,否则为false。 empty(变量):判断变量的内容是否为空,(不是null,而是没有内容),基本上,是一些规定,如...
  • l1028386804
  • l1028386804
  • 2015年09月20日 11:57
  • 776

Illegal offset type in isset or empty in in project

Warning: Illegal offset type in isset or empty in    db\mysql.db.php on line 340 在编写接口时几次出现 这个警告。具体...
  • llnara
  • llnara
  • 2016年11月29日 17:48
  • 714

JS中如何判断变量是否为空,有和PHP一样的isset()和empty()函数么?

JS中如何判断变量是否为空isset()在php中用来检测变量是否设置,该函数返回的是个布尔值,即true/false。在javascript中,你可以用!(typeof(a) == “undefin...
  • qq_26291823
  • qq_26291823
  • 2016年01月10日 11:00
  • 4788

原:PHP内核源码分析:isset与 empty

声明:本文为斯人原创,全部为作者一一分析得之,有不对的地方望赐教。 博客地址:PHP技术博客 在CSDN也会同步更新的哦. 欢迎转载,转载请注明出处  PHP内核函数里面有提供了...
  • siren0203
  • siren0203
  • 2012年03月10日 19:42
  • 3011
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:empty() 与 isset() 的一个简单比较
举报原因:
原因补充:

(最多只允许输入30个字)