PHP中empty,isset,is_null用法和区别


Posted in PHP onFebruary 19, 2017

1.empty用法

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

2.isset()

isset -- 检测变量是否设置

描述
bool isset ( mixed var [, mixed var [, ...]])
如果 var 存在则返回 TRUE,否则返回 FALSE。
如果已经使用 unset() 释放了一个变量之后,它将不再是 isset()。若使用 isset() 测试一个被设置成 NULL 的变量,将返回 FALSE。同时要注意的是一个 NULL 字节("0")并不等同于 PHP 的 NULL 常数。

注意:如果变量不存在,isset()和empty()都不会报错;is_null(),is_numeric()会报错

如何区别如下数组中 [0,'',null] 三个元素?(1)区别0:

$a = 0;
isset($a) && is_numeric($a) === true

(2)区别''

$a = '';
empty($a) && $a=== ''

(3)区别null

$a = null;
is_null($a);

另外在做表单提交的时候可能经常要检测一个变量是否存在,假如$_REQUEST['status'] = 0;使用empty($_REQUEST['status'])返回true,但是使用isset($_REQUEST['status']) 判断就不是空

3. is_null():

bool is_null ( mixed $var )   (php.net官方文档的函数定义)
当参数满足下面三种情况时,is_null()将返回TRUE,其它的情况就是FALSE
1、它被赋值为NULL
2、它还没有赋值
3、它未定义,相当于unset(),将一个变量unset()后,不就是没有定义吗
让我们来看一些例子:

$myvar = NULL;  
var_dump(is_null($myvar)); // TRUE 
$myvar1;      
var_dump(is_null($myvar1)); // TRUE Notice: Undefined variable 
$num = 520; 
unset($num); 
var_dump(is_null($num)); //TRUE Notice: Undefined variable 
var_dump(is_null($some_undefined_var)); //TRUE Notice: Undefined variable 
 
$myvar = 0; is_null($myvar);   // FALSE 
$myvar = FALSE; is_null($myvar); // FALSE 
$myvar = ''; is_null($myvar);  // FALSE
PHP 相关文章推荐
php输出表格的实现代码(修正版)
Dec 29 PHP
基于PHP Socket配置以及实例的详细介绍
Jun 13 PHP
php常用Stream函数集介绍
Jun 24 PHP
php常用ODBC函数集(详细)
Jun 24 PHP
php微信开发之批量生成带参数的二维码
Jun 26 PHP
利用PHP如何写APP接口详解
Aug 23 PHP
PHP自动补全表单的两种方法
Mar 06 PHP
php+mysql开发的最简单在线题库(在线做题系统)完整案例
Mar 30 PHP
深入学习微信网址链接解封的防封原理visit_type
Aug 15 PHP
解决thinkphp5未定义变量会抛出异常,页面错误,请稍后再试的问题
Oct 16 PHP
Thinkphp 在api开发中异常返回依然是html的解决方式
Oct 16 PHP
tp5.1 框架数据库-数据集操作实例分析
May 26 PHP
简单谈谈 php 文件锁
Feb 19 #PHP
PHP new static 和 new self详解
Feb 19 #PHP
PHP连接MySQL进行增、删、改、查操作
Feb 19 #PHP
PHP进程通信基础之信号量与共享内存通信
Feb 19 #PHP
PHP进程通信基础之信号
Feb 19 #PHP
PHP 信号管理知识整理汇总
Feb 19 #PHP
php 三大特点:封装,继承,多态
Feb 19 #PHP
You might like
php继承的一个应用
2011/09/06 PHP
php中FTP函数ftp_connect、ftp_login与ftp_chmod用法
2014/11/18 PHP
PHP处理大量表单字段的便捷方法
2015/02/07 PHP
thinkphp5框架实现的自定义扩展类操作示例
2019/05/16 PHP
使用jquery为table动态添加行的实现代码
2011/03/30 Javascript
TextArea不支持maxlength的解决办法(jquery)
2011/09/13 Javascript
给Flash加一个超链接(推荐使用透明层)兼容主流浏览器
2013/06/09 Javascript
script不刷新页面的联动前后代码
2013/09/18 Javascript
JS+CSS模拟可以无刷新显示内容的留言板实例
2015/03/03 Javascript
基于jQuery实现动态搜索显示功能
2016/05/05 Javascript
js实现四舍五入完全保留两位小数的方法
2016/08/02 Javascript
Angular的事件和表单详解
2016/12/26 Javascript
jquery实现手机端单店铺购物车结算删除功能
2017/02/22 Javascript
JavaScript 上传文件(psd,压缩包等),图片,视频的实现方法
2017/06/19 Javascript
angular学习之从零搭建一个angular4.0项目
2017/07/10 Javascript
详解vue项目的构建,打包,发布全过程
2017/11/23 Javascript
React中的render何时执行过程
2018/04/13 Javascript
js实现多个倒计时并行 js拼团倒计时
2019/02/25 Javascript
详解Vue3中对VDOM的改进
2020/04/23 Javascript
[03:16]DOTA2完美大师赛主赛事首日集锦
2017/11/23 DOTA
关于你不想知道的所有Python3 unicode特性
2014/11/28 Python
Python使用Srapy框架爬虫模拟登陆并抓取知乎内容
2016/07/02 Python
Python面向对象编程基础解析(二)
2017/10/26 Python
python实现简易通讯录修改版
2018/03/13 Python
Python之pymysql的使用小结
2019/07/01 Python
Django框架反向解析操作详解
2019/11/28 Python
Python实现将蓝底照片转化为白底照片功能完整实例
2019/12/13 Python
python如何进入交互模式
2020/07/06 Python
Python实现扫码工具的示例代码
2020/10/09 Python
adidas美国官网:adidas US
2016/09/21 全球购物
送给他或她的礼物:FUN.com
2018/08/17 全球购物
公务员上班玩游戏检讨书
2014/09/17 职场文书
2014年财务科工作总结
2014/11/11 职场文书
质量负责人岗位职责
2015/02/15 职场文书
社区文明创建工作总结2015
2015/04/21 职场文书
python机器学习Github已达8.9Kstars模型解释器LIME
2021/11/23 Python