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 ...
随机推荐
- 20170506计划-----(基于python查询oracle语句)
在日常的工作中,经常接到开发同事查询生产SQL的请求,公司又不允许对开发开放查询SQL的权限,并且查询的堡垒机又很慢,计划做一个可以自动查询SQL的小工具,一周内完成吧. 大概功能实现了,一些涉及敏感 ...
- Linux 安装源码软件
linux下,源码的安装一般由3个步骤组成:配置(configure).编译(make).安装(make install) 过程中用到configure --prefix --with:其中--pr ...
- 序列化还是JSON存储对象?
2018-11-10 先对比一下存诸空间大小:https://pan.baidu.com/s/1I3K8ARfl4x8pC__B-T_vbA 输出的结果是 json: 序列化: 序列化Map: 用JS ...
- [翻译]理解分析Linux里的101个ELF文件
原文:https://linux-audit.com/elf-binaries-on-linux-understanding-and-analysis/
- EmWin 文本显示函数
函数模型----------------------------------- 1:void GUI_DispChar(U16 c): 在当前窗口的当前文本位置处,使用当前字体显示单个字符. c ...
- 【MyBatis-Spring】Mybatis和并入Spring框架
1.参考书籍:<深入浅出MyBatis技术原理与实战> 2.知识基础:Spring.Mybatis.Spring MVC. 配置数据源 配置SqlSessionFactory SqlSes ...
- js unicode转中文 方案概述联网LED照明方案可执行全部的DALI 和
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- [置顶]ABP框架系列总目录(持续更新)
Articles & Tutorials Introduction & Step by Step With ASP.NET Core & Entity Framework Co ...
- cp/tar/用c语言编写程序 实现cp命令的效果
1.cp (拷贝) 已存在文件路径 要拷贝的文件路径 实现cp命令的代码如下: #include <stdio.h> //因为要在命令中得到两个路径,所以要用到main函数的两个参数 i ...
- redis_字符串对象
Redis总共支持五种数据类型:string,hash,list,set及zset.这里介绍字符串类型的实现 首先了解字符串对象的结构 // redis对象内存分配,列出主要相关的属性 redisOb ...