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

1、empty函数

用途:检测变量是否为空

判断:如果 var 是非空或非零的值,则 empty() 返回 FALSE。换句话说,""、0、"0"、NULL、FALSE、array()、var $var; 以及没有任何属性的对象都将被认为是空的,如果 var 为空,则返回 TRUE。来源手册:http://php.net/manual/zh/function.empty.php

注意:empty() 只检测变量,检测任何非变量的东西都将导致解析错误。

$name=0;

$name=‘‘;

$name=null;

$name="0";

$name;

if(empty($name))

{

echo "ok"; //上面五种写法empty($name)都是 true

}

if(empty($na))  //结果为 true 由于变量$na未定义

2、isset函数

用途:检测变量是否设置

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

isset 函数是用于检测这个变量是否设置过,在下面两种情况下会认为 isset为假

①$id; 没有给任何值

②或者就是根本没有定义.

因此我们建议在 判断某个表单是否提交有数据,使用isset来判断if(isset($_GET/$_POST[‘变量‘]){echo $_GET[‘变量‘]}else{ echo ‘没有传递数据‘}

例子:

$a1 = null;

$a2 = false;

$a3 = 0;

$a4 = ‘‘;

$a5 = ‘0‘;

$a6 = ‘null‘;

$a7 = array();

$a8 = array(array());

echo empty($a1) ? ‘true’ : ‘false’;//输出true

echo empty($a2) ? ‘true’ : ‘false’;//输出true

echo empty($a3) ? ‘true’ : ‘false’;//输出true

echo empty($a4) ? ‘true’ : ‘false’;//输出true

echo empty($a5) ? ‘true’ : ‘false’;//输出true

echo empty($a6) ? ‘true’ : ‘false’;//输出false

echo empty($a7) ? ‘true’ : ‘false’;//输出true

echo empty($a8) ? ‘true’ : ‘false’;//输出false

echo ‘<br/>’;

echo isset($a1) ? ‘true’ : ‘false’;//输出false

echo isset($a2) ? ‘true’ : ‘false’;//输出true

echo isset($a3) ? ‘true’ : ‘false’;//输出true

echo isset($a4) ? ‘true’ : ‘false’;//输出true

echo isset($a5) ? ‘true’ : ‘false’;//输出true

echo isset($a6) ? ‘true’ : ‘false’;//输出true

echo isset($a7) ? ‘true’ : ‘false’;//输出true

echo isset($a8) ? ‘true’ : ‘false’;//输出true

1、isset值对于变量没有赋值或者赋值为NULL时判断false,其余都是true;

2、empty需要注意点比较多,要根据函数的定义来做判断.

时间: 2024-11-05 13:45:31

PHP中empty()和isset()的区别的相关文章

php中empty,is_null,isset的区别详解

PHP中有很多功能类似的函数,却有着细微的差别,正如本篇文章所有分析的 is_null,empty,isset 三个函数,不费一番功夫,还真不容易真正的搞懂额!下面跟随站长来具体的了解一下这三个函数的区别吧! 我们先来看看这3个函数的功能描述 isset 判断变量是否已存在,如果变量存在则返回 TRUE,否则返回 FALSE. empty 判断变量是否为空,如果变量是非空 或非零 的值,则 empty() 返回 FALSE.换句话说,"" .0 ."0" .NULL

PHP中empty、isset和is_null的使用区别

关于PHP中empty().isset() 和 is_null() 这三个函数的区别,之前记得专门总结过,上次又被问到,网上已经很多,就用几个例子来说明: 测试用例选取: <?php $a;$b = false;$c = '';$d = 0;$e = null;$f = array(); ?> 用var_dump()分别输出如下: empty() bool(true)bool(true)bool(true)bool(true)bool(true)bool(true) isset() bool(

php学习之道:php empty()和isset()的区别

在使用 php 编写页面程序时,我经常使用变量处理函数判断 php 页面尾部参数的某个变量值是否为空,开始的时候我习惯了使用 empty() 函数,却发现了一些问题,因此改用 isset() 函数,问题不再. 顾名思义,empty() 判断一个变量是否为"空",isset() 判断一个变量是否已经设置.正是这种所谓的"顾名思义",令我开始时走了些弯路:当一个变量值等于0时,empty()也会成立(True),因而会发生一些意外.原来,empty() 和 isset(

empty 和 isset的区别和联系

empty 和 isset的区别和联系 要说它们的联系,其共同点就是empty()和isset()都是变量处理函数,作用是判断变量是否已经配置,正是由于它们在处理变量过程中有很大的相似性,才导致对它们的关系认识不足.单从empty()和isset()这两个函数本身来考虑的话会把人弄得更糊涂,换一个角度来它.empty()和isset()的处理对象无外乎未定义变量,0,空字符串.如果变量为0,则empty()会返回TRUE,isset()会返回TRUE: 如果变量为空字符串,则empty()会返回

php empty()和isset()的区别

empty()和isset()都是变量处理函数,作用是判断变量是否已经配置,正是由于它们在处理变量过程中有很大的相似性,才导致对它们的关系认识不足.单从empty()和isset()这两个函数本身来考虑的话会把人弄得更糊涂, 换一个角度来它.empty()和isset()的处理对象无外乎未定义变量,0,空字符串. 如果变量为0,则empty()会返回TRUE,isset()会返回TRUE: 如果变量为空字符串,则empty()会返回TRUE,isset()会返回TRUE: 如果变量未定义,则em

一张表搞清楚php is_null、empty、isset的区别

isset 判断变量是否已存在 empty 判断变量是否为空或为0 is_null 判断变量是否为NULL 变量 empty is_null isset $a="" true false true $a=null true true false var $a true true false $a=array() true false true $a=false true false true $a=15 false false true $a=1 false false true $a

一张表搞清楚 php 的 is_null、empty、isset的区别

isset 判断变量是否已存在 empty 判断变量是否为空或为0 is_null 判断变量是否为NULL 变量 empty is_null isset $a="" true false true $a=null true true false var $a true true false $a=array() true false true $a=false true false true $a=15 false false true $a=1 false false true $a

php中empty()、isset()、is_null()和变量本身的布尔判断区别

<?php//预定义变量数组:空字符,字符0,数组0,null,布尔false,空数组$arr_var = array('', '0', 0, null, false, array()); foreach ($arr_var as $value) { echo '<br>传入值为:' . $value . '<br>'; if (!isset($value)) { echo 'isset()==false<br>'; } if (empty($value)) {

2016/05/25 empty() 与 isset()的区别

对于初学php的人来说,empty()和和isset()用法的区别是很难搞清楚的,他们的用法的差别不仔细去琢磨的话确实很难弄清楚. 先说一下他们的共同点: 都可以判定一个变量是否为空: 都返回boolean类型,即true或false. 下面具体说一下他们用法之间的区别: isset()用来检测变量是否设置,只能用于变量,因为传递任何其它参数都将造成解析错误.若想检测常量是否已设置,可使用 defined() 函数.如果已经使用 unset() 释放了一个变量之后,它将不再是 isset().若