php中empty(), is

   empty(), is_null(), isset()真值表(区别)


  我们先来看看这3个函数的功能描述 www.111cn.net

  isset 判断变量是否已存在,如果变量存在则返回 TRUE,否则返回 FALSE。

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

  is_null 判断变量是否为NULL

  怎么样,一般的都是这种解释,但这种解释已经很让人迷糊了,下面结合具体的例子来分析吧!

  从中我们可以发现只要变量是""或者0,或者是false和null,只要是这些值empty都会返回true。

  isset只是判断变量是否存在,只要你这个变量不是null或未赋值,返回结果都是true。若使用 isset() 测试一个被设置成 NULL 的变量,将返回 FALSE。同时要注意的是一个 NULL 字节("")并不等同于 PHP 的 NULL 常数。

  而is_null正好是isset的反结果,我们可以把它看成是!isset,是isset的一个逆操作。

  从以上的例子中,我们也可以得出下面这几个结论(以后编程中会经常用到的哦):

  假设 $var 是任何type

  当 empty($var) 为 true 时,(bool)($var) 为 false 。反之亦然。

  当 is_null($var) 为 true 时,isset($var) 为 false 。反之亦然。

  例如:

  $i=$j+1;

  这里的is_null($j)为true(可以理解为因为 isset($j)为false,因为没有事先声明 $j 这个变量)

  另外需要注意的两点是:

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

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

  概括总结isset,empty,is_null区别

  刚才介绍的:检查变量,以及参数类型,这个是这3个函数不同之处的基础,也是最容易被忽视的。看到网上有很多对这个3个函数进行比较文章。很少涉及这些。下面我要说的,是在都检查已存在变量情况下,不同之处。

 代码如下  

<?php 
$a=100; 
$b=""; 
$c=null; 
//isset检查 
echo "isset","$a=$a",isset($a)?"define":"www.111cN.net undefine","rn"; 
echo "isset","$b=$b",isset($b)?"define":"undefine","rn"; 
echo "isset","$c=$c",isset($c)?"define":"undefine","rn"; 
unset($b); 
echo "isset","$b",isset($b)?"define":"undefine","rn"; 
$b=0; 
echo "rnrn"; 
  
//empty检查 
echo "empty","$a=$a",!empty($a)?"no empty":"empty","rn"; 
echo "empty","$b=$b",!empty($b)?"no empty":"empty","rn"; 
echo "empty","$c=$c",!empty($c)?"no empty":"empty","rn"; 
unset($b); 
echo "empty","$b",!empty($b)?"no empty":"empty","rn"; 
$b=0; 
echo "rnrn"; 
  
//is_null检查 
echo "is_null","$a=$a",!is_null($a)?"no null":"null","rn"; 
echo "is_null","$b=$b",!is_null($b)?"no null":"null","rn"; 
echo "is_null","$c=$c",!is_null($c)?"no null":"null","rn"; 
unset($b); 
echo "is_null","$b",is_null($b)?"no null":"null","rn";

 

  通过上面这个简单测试,我们可以大体知道,当一个变量存在情况下:isset,empty,is_null检测,得到值情况了。上面没有举例更多变量。其实测试发现:

  empty

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

  isset

  如果 变量 存在(非NULL)则返回 TRUE,否则返回 FALSE(包括未定义)。变量值设置为:null,返回也是false;unset一个变量后,变量被取消了。注意,isset对于NULL值变量,特殊处理。

  is_null

  检测传入值【值,变量,表达式】是否是null,只有一个变量定义了,且它的值是null,它才返回TRUE . 其它都返回 FALSE 【未定义变量传入后会出错!】.

时间: 2024-07-30 10:37:05

php中empty(), is的相关文章

jQuery中empty()方法用法实例

 这篇文章主要介绍了jQuery中empty()方法用法,以实例形式分析了empty()方法的功能.定义及将匹配元素中的所有内容移除的使用技巧,需要的朋友可以参考下     本文实例讲述了jQuery中empty()方法用法.分享给大家供大家参考.具体分析如下: 此方法能够将匹配元素中的所有内容移除,包括所有文本和子节点. 语法结构: 代码如下: $(selector).empty()   实例代码:   代码如下: <!DOCTYPE html> <html> <head&

PHP中empty和isset对于参数结构的判断及empty()和isset()的区别_php实例

废话不多说了,直接给大家贴代码了. <?php class test{} $a1 = null; $a2 = ""; //$a3 = $a4 = 0; $a5 = '0'; $a6 = false; $a7 = array(); //var $a8; $a9 = new test(); for ($i=1; $i <=9 ; $i++) { $s = 'a'.$i; echo $i . ":"; var_dump(isset($$s)); echo '&

jQuery中:empty选择器用法实例_jquery

本文实例讲述了jQuery中empty选择器用法.分享给大家供大家参考.具体分析如下: 此选择器匹配所有不包含子元素或者文本的空元素. 注意:空格也属于选择器包含的元素. 语法结构: 复制代码 代码如下: $(":empty") 此选择器一般也要和其他选择器配合使用,比如类选择器和元素选择器等等.例如: 复制代码 代码如下: $("li:empty").animate({width:"200px"}) 以上代码能够将li元素集合中的空li元素的宽

jQuery中empty()方法用法实例_jquery

本文实例讲述了jQuery中empty()方法用法.分享给大家供大家参考.具体分析如下: 此方法能够将匹配元素中的所有内容移除,包括所有文本和子节点. 语法结构: 复制代码 代码如下: $(selector).empty() 实例代码: 复制代码 代码如下: <!DOCTYPE html> <html> <head> <meta charset=" utf-8"> <meta name="author" cont

vbs中Empty和Null的区别_vbs

empty关键字指用于指明未初始化的变量值,与NULL不同 NULL关键字指用于指明变量包含的数据无效,与empty不同 实例: dim p '此时,  isempty(p) 为 true isNull(p) 为 null 再例如,在在数据库里读出记录的一个的某个字段ppp值是 null ,该字段没有数据 p=rs("ppp") 此时 isNull(p)=true 再说一个容易模糊的东东(可能也是大家费解的地方) vbs 在没有option explicit时允许不声明变量就使用变量赋

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

在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 . '<

浅析php中empty与isset区别

empty是判断变量值是非空或非零的值.对应空定义包括:""(空字符串).0."0".NULL.FALSE.array()和$var(只声明但未赋值).也就是说当变量值为上述这些,empty返回TRUE,其他的都返回FALSE. isset是检测变量是否设置,并且不是 NULL.变量设置可以从几个方面来说.1:最简单的就是变量是否先声明和赋值:2:array中是否存在对应的index或key:3:object中是否存在对应的属性. 从上面的两个function定义可

php中empty和isset用法区别详解

isset  - 检测变量是否设置 PHP isset() 用于检测一个或多个变量是否设置,如果被检测的变量存在则返回 TRUE,否则返回 FALSE. 例子:  代码如下 复制代码 <?php $var = 1; if(isset($var)){     echo '变量 $var 已经被设置'; } else {     echo '变量 $var 还未被设置'; } ?> 运行该例子输出: 变量 $var 已经被设置 数组中的元素也同样有效:    代码如下 复制代码 <?php

再谈php中empty与isset区别详解

empty是判断变量值是非空或非零的值.对应空定义包括:""(空字符串).0."0".NULL.FALSE.array()和$var(只声明但未赋值).也就是说当变量值为上述这些,empty返回TRUE,其他的都返回FALSE. isset是检测变量是否设置,并且不是 NULL.变量设置可以从几个方面来说.1:最简单的就是变量是否先声明和赋值:2:array中是否存在对应的index或key:3:object中是否存在对应的属性. 从上面的两个function定义可