开发中经常会遇到验证某个参数是否是null或者是否为空。

一、isset()、is_null() 、empty() :

  isset():检测变量是否设置,并且不是 NULL.如果变量没有赋值 或者 变量赋值为null.为 false.

  is_null():检测变量是否为 NULL,变量未声明,提示错误,结果输出。

  empty() :判断一个变量是否被认为是空的。当一个变量并不存在,或者它的值等同于FALSE,那么它会被认为不存在。如果变量不存在的话,empty()并不会产生警告。

$def1;
$def2=0;
$def3=false;
$def4='';
$def5=array();
$def6=null; echo('-- isset() --');
echo("<br/>");
echo('$def1');
var_dump(isset($def1) );
echo("<br/>");
echo('$def2=0 :');
var_dump(isset($def2) );
echo("<br/>");
echo('$def3=false :');
var_dump(isset($def3) );
echo("<br/>");
echo('$def4=\'\' :');
var_dump(isset($def4) );
echo("<br/>");
echo('$def5=array() :');
var_dump(isset($def5) );
echo("<br/>");
echo('$def5=null :');
var_dump(isset($def6) );
echo("<hr/>"); echo('-- is_null() --');
echo("<br/>");
echo('$def1');
var_dump(is_null($def1) );
echo("<br/>");
echo('$def2=0 :');
var_dump(is_null($def2) );
echo("<br/>");
echo('$def3=false :');
var_dump(is_null($def3) );
echo("<br/>");
echo('$def4=\'\' :');
var_dump(is_null($def4) );
echo("<br/>");
echo('$def5=array() :');
var_dump(is_null($def5) );
echo("<br/>");
echo('$def5=null :');
var_dump(is_null($def6) );
echo("<hr/>"); echo('-- empty() --');
echo("<br/>");
echo('$def1');
var_dump(empty($def1) );
echo("<br/>");
echo('$def2=0 :');
var_dump(empty($def2) );
echo("<br/>");
echo('$def3=false :');
var_dump(empty($def3) );
echo("<br/>");
echo('$def4=\'\' :');
var_dump(empty($def4) );
echo("<br/>");
echo('$def5=array() :');
var_dump(empty($def5) );
echo("<br/>");
echo('$def5=null :');
var_dump(empty($def6) );
echo("<hr/>");
常用类型默认值,分三段,isset(),is_null(),empty(),是怎样对待默认值的

输出:

-- isset() --
$def1bool(false)
$def2=0 :bool(true)
$def3=false :bool(true)
$def4='' :bool(true)
$def5=array() :bool(true)
$def5=null :bool(false)
-- is_null() --
$def1 Notice: Undefined variable: def1 in C:\Users\Sunn\Desktop\yii\yii\apps\blog\index.php on line 35 Call Stack: 0.0037 135992 1. {main}() C:\Users\Sunn\Desktop\yii\yii\apps\blog\index.php:0 bool(true)
$def2=0 :bool(false)
$def3=false :bool(false)
$def4='' :bool(false)
$def5=array() :bool(false)
$def5=null :bool(true)
-- empty() --
$def1bool(true)
$def2=0 :bool(true)
$def3=false :bool(true)
$def4='' :bool(true)
$def5=array() :bool(true)
$def5=null :bool(true)

isset():变量是否设置了有效值(变量存在且不为NULL)

is_null:变量是否为NULL(变量未声明也算,会有错误提示)

empty():这个不太友好,标准类型的默认值,被认为空。

总结:isset()   is_null()    empty()  — isset()包容性比较高,其次是is_null,我会根据实际情况严格程度进行使用。

二、defined:检查某个名称的常量是否存在,这个函数是检测常量的。

 define("NAME","sc");
echo('-- Const: NAME --');
echo("<br/>");
echo("NAME :");
var_dump(defined('NAME'));
var_dump(NAME);

输出:

-- Const: NAME --
NAME :bool(true) string(2) "sc"
is_null : bool(false)

php--isset()、is_null() 、empty()的更多相关文章

  1. isset、empty、var==null、is_null、var===null详细理解

    //isset: 判断变量是否被初始化 //它并不会判断变量是否为空,并且可能用来判断数组中元素是否被定义 //听说在数组用isset与array_key_exists高出4倍 $a = " ...

  2. isset、is_null、empty的区别

    版本:PHP 5.4 1.isset() :检测变量是否存在,测试如下: $a = false; $b = null; $c; $d = 0; $e = true; var_dump(isset($a ...

  3. 11月1日上午PHP------empty、 is_null、isset、unset的区别

    1.empty 判断一个变量是否为"空".null.false.00.0.'0′.』.为以上值的变量在检测時都将返回true. 2.isset 判断一个变量是否已经设置.0.00. ...

  4. null、 is_null() 、empty() 、isset() PHP 判断变量是否为空

    PHP中,在判断变量是否为空的时候,总会纠结应该选用哪个函数,下面列取常用的多种情况,其中1/3经过我的验证,其它来自网络,验证后使用... 使用 PHP 函数对变量 $x 进行比较 表达式 gett ...

  5. PHP的isset()、is_null、empty()使用总结

    这几个变量判断函数在PHP开发中用的其实挺多的,而且粗看上去都差不多,但其实还是有不少的区别的,如果搞不清楚,也许就会遗留一些潜在的bug, 包括我自已也遇到过这样的坑,比如有一次我就遇到过用empt ...

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

    在php脚本中,我们经常要去判断一个变量是否已定义或者是否为空,就需要用到这些函数empty().isset().is_null()和其本身作为参数,下面小段程序做个简要比较 <?php//预定 ...

  7. PHP中empty、isset和is_null的具体区别?

    1.isset()用来检测一个变量是否已声明; 2.empty()用来检测一个变量是否为空如果有如下情况返回真值: 1)空字符串 2)false 3)空数组 4)NULL 5)0 6)0.0 7)un ...

  8. PHP isset()、empty()、is_null()的使用区别详解

    PHP的isset()函数 一般用来检测变量是否设置 格式:bool isset ( mixed var [, mixed var [, ...]] ) 功能:检测变量是否设置 返回值: 若变量不存在 ...

  9. empty、isset、is_null的比较

    直接上代码 <?php $a=0; $b='0'; $c=0.0; $d=''; $e=NULL; $f=array(); $g='\0'; $h=' ';//space $i=true; $j ...

随机推荐

  1. vue中部分api解释 ($nextTick)

    1:this.$nextTick(function(){ }) 传如的参数是一个函数 这个API主要是获取dom元素 为什么需要这个api,在vue框架开发中,更新dom是一个异步操作,如果更新完do ...

  2. Android自动化之Monkey测试(二)

    本文主要从以下方面进行分享. 一.查看应用包名二.Monkey启动三.Monkey停止四.Monkey命令五.日志分析 一.查看应用包名 大多数时候,我们都是对特定的应用进行monkey测试,因此需要 ...

  3. UE4的委托

    UE中委托的使用很广泛,许多Event的触发都有对应的虚函数和委托,虚函数不用讲,只能在派生类中使用,而委托可以在别的类或者蓝图中使用,就应用范围而言,委托的使用更灵活.以AActor的 /** * ...

  4. Quartz一次配置

    1. 配置执行器的线程池 public ThreadPoolTaskExecutor defaultThreadPool() { ThreadPoolTaskExecutor executor = n ...

  5. Java程序简介

    ---恢复内容开始--- java程序的基本构成: HelloDate.java package 语句 import 语句 类定义 -class 一个文件只能有一个public 类 (与文件同名) 类 ...

  6. Mysql中存储引擎区别【 InnoDB、MyISAM】

    区别: 1. InnoDB支持事务,MyISAM不支持,对于InnoDB每一条SQL语言都默认封装成事务,自动提交,这样会影响速度,所以最好把多条SQL语言放在begin和commit之间,组成一个事 ...

  7. 【Python】 Python3 环境搭建

    Python是一种计算机程序设计语言.是一种面向对象的动态类型语言,最初被设计用于编写自动化脚本(shell),随着版本的不断更新和语言新功能的添加,越来越多被用于独立的.大型项目的开发. Windo ...

  8. 给div"上"滑动条

    最近做项目时修改一个遗留的bug,大概是这样:有一个聊天窗口,用户聊天内容展现在窗口上.其实这个窗口是一个带滑动条的div,随着聊天内容的添加,滑动条也越来越长了,这不是重点,重点是每次刷新窗口时候, ...

  9. Spring流行的十大理由

    Spring大概是每个JAVA程序员都听过的框架,但是它为什么能这么流行? 听到咕泡学院的Tom老师的公开课,下面是他总结的阿里为什么选择Spring的十大理由,我觉得这也是Spring能流行的原因: ...

  10. 微信如何实现自动跳转到用其他浏览器打开指定页面下载APP

    不管是app的下载链接还是普通文件的链接在微信内置浏览器或者QQ内置浏览器都会被屏蔽.这是微信对第三方下载域名实施的拦截政策.被拦截了用户在微信内打开就会提示“已停止访问该网页”. 那么当我们遇到这个 ...