php--isset()、is_null() 、empty()
开发中经常会遇到验证某个参数是否是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()的更多相关文章
- isset、empty、var==null、is_null、var===null详细理解
//isset: 判断变量是否被初始化 //它并不会判断变量是否为空,并且可能用来判断数组中元素是否被定义 //听说在数组用isset与array_key_exists高出4倍 $a = " ...
- isset、is_null、empty的区别
版本:PHP 5.4 1.isset() :检测变量是否存在,测试如下: $a = false; $b = null; $c; $d = 0; $e = true; var_dump(isset($a ...
- 11月1日上午PHP------empty、 is_null、isset、unset的区别
1.empty 判断一个变量是否为"空".null.false.00.0.'0′.』.为以上值的变量在检测時都将返回true. 2.isset 判断一个变量是否已经设置.0.00. ...
- null、 is_null() 、empty() 、isset() PHP 判断变量是否为空
PHP中,在判断变量是否为空的时候,总会纠结应该选用哪个函数,下面列取常用的多种情况,其中1/3经过我的验证,其它来自网络,验证后使用... 使用 PHP 函数对变量 $x 进行比较 表达式 gett ...
- PHP的isset()、is_null、empty()使用总结
这几个变量判断函数在PHP开发中用的其实挺多的,而且粗看上去都差不多,但其实还是有不少的区别的,如果搞不清楚,也许就会遗留一些潜在的bug, 包括我自已也遇到过这样的坑,比如有一次我就遇到过用empt ...
- php中empty()、isset()、is_null()和变量本身的布尔判断区别(转)
在php脚本中,我们经常要去判断一个变量是否已定义或者是否为空,就需要用到这些函数empty().isset().is_null()和其本身作为参数,下面小段程序做个简要比较 <?php//预定 ...
- PHP中empty、isset和is_null的具体区别?
1.isset()用来检测一个变量是否已声明; 2.empty()用来检测一个变量是否为空如果有如下情况返回真值: 1)空字符串 2)false 3)空数组 4)NULL 5)0 6)0.0 7)un ...
- PHP isset()、empty()、is_null()的使用区别详解
PHP的isset()函数 一般用来检测变量是否设置 格式:bool isset ( mixed var [, mixed var [, ...]] ) 功能:检测变量是否设置 返回值: 若变量不存在 ...
- empty、isset、is_null的比较
直接上代码 <?php $a=0; $b='0'; $c=0.0; $d=''; $e=NULL; $f=array(); $g='\0'; $h=' ';//space $i=true; $j ...
随机推荐
- Scrapy运行ImportError: No module named win32api错误
windows系统上出现这个问题的解决需要安装Py32Win模块,更方便的做法是: pip install pypiwin32
- 《修炼之道:.NET开发要点精讲》读书笔记(四)
委托的作用:1)它允许把方法作为参数,传递给其它的模块:2)它允许我们同时调用多个具有相同签名的方法:3)它允许我们异步调用任何方法. “方法签名”指方法的参数个数.参数类型以及返回值等,具有相同签名 ...
- Sublime text 2/3 [Decode error - output not utf-8] 完美解决方法
原文链接 http://blog.csdn.net/bbdxf/article/details/25594703 [Decode error - output not utf-8]或者[Decode ...
- cytoscape.js
http://js.cytoscape.org/ HTML 报告中插入动态网络关系图利器
- squid代理加用户认证
squid代理加用户认证 用authentication helpers添加身份验证 有如下几种认证方式 :=> NCSA: Uses an NCSA-style username and pa ...
- 解决使用Mybatis 传入多参数使用map封装遇到的 “坑”问题
好久没来写些东西了,今天 我分享一下自己遇到的一个“小 坑”,这也许对您来说不是个问题,但是我还是希望对没有遇到过这类问题的朋友给个小小的帮助吧 是这样的,需求:需要实现根据多条件 且分页展示数据 1 ...
- 线程中的setDaemon方法
setDaemon方法必须在start方法前定义.t1.setDaemon(True),该语句的意思是:将主线程A设置为子线程t1的守护线程.也就是在执行程序时,t1会随着主线程A的退出而退出,不论t ...
- Python h5py
1.关于安装: 如果你使用的是Anaconda的话,安装命令如下: conda install h5py 如果没有,安装命令如下: pip install h5py 2.核心概念 读取HDF5文件,假 ...
- 在ExtJS中查看视频
listeners: { render: function() { win.update( '<video src="' + path+ '" width="100 ...
- javascript小括号、中括号、大括号学习总结
作为一名编程人员,和括号打交道是必不可少的.你可知道在不同的上下文中,括号的作用是不一样的,今天就让我们简单总结下javascript小括号.中括号.大括号的用法. 总的来说,JavaScript中小 ...