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 ...
随机推荐
- 28. pt-table-sync
前提:得有checksum表 pt-table-sync --replicate=pt.checksum \h=192.168.100.101,P=3306,u=admin,p=admin \h=19 ...
- Flip String to Monotone Increasing LT926
A string of '0's and '1's is monotone increasing if it consists of some number of '0's (possibly 0), ...
- XBee模块户外通信距离测试
Digi的XBee模块在市面上同类产品中,除了稳定性和可靠性最受推崇外,在距离测试中一般都比竞争对手的产品略胜一筹.户外测试需要注意避免模块自身以外的因素造成的测试结果不理想. 2.4G的模块有Zig ...
- eclipse中修改maven本地仓库方式
1.安装maven,教程可参考:https://jingyan.baidu.com/article/4f7d5712a1306c1a21192746.html 2.安装成功后,可以打开eclipse新 ...
- 大面积project.pbxproj冲突问题解决
在团队开发中,经常会有project.pbxproj的冲突出现. 所以我们添加过新的文件后,要及时的提交,养成好习惯.以免出问题. 但是总有一些时候忘记提交出现大面积的冲突,然后把==== <& ...
- RPA基础
RPA是什么 软件机器人 RPA是基于计算机操作系统的工作界面,自动识别UI,完成预先设定的工作流程的软件机器人 全自动 自动的操作整个工作流程,用软件的方式代替人力,完成大量的重复性的手工操作, ...
- RHCSA之路(1) -- 重拾RHEL 7
去年就买了Linux就该这么学这本书,在自己电脑上和实验室里的电脑都按照书上写的配置安装好了RHEL 7系统,然后看到了第二章就被别的事情吸引了注意力就再也没碰过了.现在希望自己能专注下来,一步一步做 ...
- 解决更新ssh后在/etc/init.d下无sshd的问题
1.将远程服务器的/etc/init.d/ssd 文件拷贝到本地 scp /etc/init.d/ssh root@IP地址:/etc/init.d 2.vi /etc/init.d/sshd 3 ...
- hadoop HDFS常用文件操作命令
命令基本格式: hadoop fs -cmd < args > 1. ls 列出hdfs文件系统根目录下的目录和文件 hadoop fs -ls /dir hadoop fs -ls -R ...
- 软件光栅器实现(四、OBJ文件加载)
本节介绍软件光栅器的OBJ和MTL文件加载,转载请注明出处. 在管线的应用程序阶段,我们需要设置光栅器所渲染的模型数据.这些模型数据包括模型顶点的坐标.纹理.法线和材质等等,可以由我们手动编写,也可以 ...