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))。
 

相关文章推荐

php empty,isset,isnull比较(差异与异同)

做php开发时候,想必在使用:empty,isset,is_null  这几个函数时候,遇到一些问题。甚至给自己的程序带来一些安全隐患的bug。很多时候,对于isset,empty都认为差不多。因此开...
  • jaray
  • jaray
  • 2014年02月10日 09:38
  • 6772

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

判断变量的值,尤其是判断他们是否不为空,我们有以下4种方法: if(isset($test)) true:变量已被赋值/设置 if(!empty($test)) true:变量不为空 if(!is_...

PHP isset 函数 与 PHP empty 函数

PHP isset 函数 与 PHP empty 函数

【php】empty和isset的区别 总结

【php】empty和isset的区别 总结 在php编程过程中,我们有时候判断某个变量或者数组是否存在,是否为空,会使用到isset()或者empty()蛰两个函数,但是自己一致不太清除他们之间的区...

PHP中empty()和isset()的区别

虽然记得,"empty()" 是检测变量是否为空,"isset()"是检测变量是否设置,但是有时候还是容易凌乱,看千遍不如自己写一遍。 手册中是这样定义的 "empty"  判断一个变量是否被认为是空...

PHP中isset()与empty()函数的区别

两者都是测试变量用的。 isset()是测试变量是否被赋值; empty()是测试一个已经被赋值的变量是否为空。 注意:如果一个变量没被赋值就引用在php里是被允许的,但会有notice提示。如...
  • wplblog
  • wplblog
  • 2016年07月16日 13:30
  • 236

PHP empty(),isset()与is_null()的实例测试

有关 PHP 的 empty(),isset() 还有 is_null() 这三个函数的用法讨论得已经很多了,而且很多资料也未必能说得很清楚。这里再重复一次,但不是从概念去说,直接用程序例子来说话,应...

PHP判断键值数组是否存在,使用empty或isset或array_key_exists

本文目的 前几天工作中,需要频繁判断数组中的键值对是否存在,起初使用的”!empty($arr[‘key’])”来判断,觉得这样读起来比较舒服,但是写出的代码无法通过单元测试(单元测试太好了)。...
  • hnyysly
  • hnyysly
  • 2014年04月17日 11:00
  • 773

PHP判断变量是否存在及函数isset() 、empty()与is_null的区别

PHP判断变量是否存在及函数isset() 、empty()与is_null的区别 作者:php-note.com  发布于:2014-01-16 21:16  分类:PHP基础  浏览(8...
  • FeBr2
  • FeBr2
  • 2016年03月24日 20:21
  • 341

empty,is_null,isset的区别

PHP中有很多函数功能类似,却有着细微的差别...  is_null, empty, isset, unset 我们先来看看这4个函数的描述。  isset 判断变量是否已存在(配置)  ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:empty() 与 isset() 的一个简单比较
举报原因:
原因补充:

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