PHP中判断变量为空的几种方法分享


Posted in PHP onAugust 26, 2013

1. isset
功能:判断变量是否被初始化 
说明:它并不会判断变量是否为空,并且可以用来判断数组中元素是否被定义过 
注意:当使用isset来判断数组元素是否被初始化过时,它的效率比array_key_exists高4倍左右

$a = '';
$a['c'] = '';
if (!isset($a)) echo '$a 未被初始化' . "";
if (!isset($b)) echo '$b 未被初始化' . "";
if (isset($a['c'])) echo '$a 已经被初始化' . "";
// 显示结果为
// $b 未被初始化
// $a 已经被初始化

2. empty
功能:检测变量是否为“空”

说明:任何一个未初始化的变量、值为 0 或 false 或 空字符串”" 或 null的变量、空数组、没有任何属性的对象,都将判断为empty==true
注意1:未初始化的变量也能被empty检测为“空”

注意2:empty只能检测变量,而不能检测语句

$a = 0;
$b = '';
$c = array();
if (empty($a)) echo '$a 为空' . "";
if (empty($b)) echo '$b 为空' . "";
if (empty($c)) echo '$c 为空' . "";
if (empty($d)) echo '$d 为空' . "";

3. var == null
功能:判断变量是否为“空”
说明:值为 0 或 false 或 空字符串”" 或 null的变量、空数组、都将判断为 null

注意:与empty的显著不同就是:变量未初始化时 var == null 将会报错。

$a = 0;
$b = array();
if ($a == null) echo '$a 为空' . "";
if ($b == null) echo '$b 为空' . "";
if ($c == null) echo '$b 为空' . "";
// 显示结果为
// $a 为空
// $b 为空
// Undefined variable: c

4. is_null
功能:检测变量是否为“null”
说明:当变量被赋值为“null”时,检测结果为true

注意1:null不区分大小写:$a = null; $a = NULL 没有任何区别

注意2:仅在变量的值为“null”时,检测结果才为true,0、空字符串、false、空数组都检测为false

注意3:变量未初始化时,程序将会报错

$a = null;
$b = false;
if (is_null($a)) echo '$a 为NULL' . "";
if (is_null($b)) echo '$b 为NULL' . "";
if (is_null($c)) echo '$c 为NULL' . "";
// 显示结果为
// $a 为NULL
// Undefined variable: c

5. var === null
功能:检测变量是否为“null”,同时变量的类型也必须是“null”
说明:当变量被赋值为“null”时,同时变量的类型也是“null”时,检测结果为true

注意1:在判断为“null”上,全等于和is_null的作用相同

注意2:变量未初始化时,程序将会报错总结

PHP中,“NULL” 和 “空” 是2个概念。isset 主要用来判断变量是否被初始化过
empty 可以将值为 “假”、“空”、“0”、“NULL”、“未初始化” 的变量都判断为TRUE

is_null 仅把值为 “NULL” 的变量判断为TRUE

var == null 把值为 “假”、“空”、“0”、“NULL” 的变量都判断为TRUE

var === null 仅把值为 “NULL” 的变量判断为TRUE所以我们在判断一个变量是否真正为“NULL”时,大多使用 is_null,从而避免“false”、“0”等值的干扰。

PHP 相关文章推荐
最令PHP初学者们头痛的十四个问题
Jan 15 PHP
php中用文本文件做数据库的实现方法
Mar 27 PHP
PHP 程序员应该使用的10个组件
Oct 31 PHP
在PHP中使用反射技术的架构插件使用说明
May 18 PHP
PHP图片验证码制作实现分享(全)
May 10 PHP
PHP截断标题且兼容utf8和gb2312编码
Sep 22 PHP
利用phpexcel把excel导入数据库和数据库导出excel实现
Jan 09 PHP
codeigniter教程之多文件上传使用示例
Feb 11 PHP
PHP实现的简单三角形、矩形周长面积计算器分享
Nov 18 PHP
PHP读取CSV大文件导入数据库的实例
Jul 24 PHP
PHP微信发送推送消息乱码的解决方法
Feb 28 PHP
基于laravel缓冲cache的用法详解
Oct 23 PHP
PHP 如何利用phpexcel导入数据库
Aug 24 #PHP
php实现利用phpexcel导出数据
Aug 24 #PHP
提高PHP性能的编码技巧以及性能优化详细解析
Aug 24 #PHP
PHP实现读取一个1G的文件大小
Aug 24 #PHP
一致性哈希算法以及其PHP实现详细解析
Aug 24 #PHP
PHP如何利用P3P实现跨域
Aug 24 #PHP
PHP引用符&的用法详细解析
Aug 22 #PHP
You might like
收音机另类DIY - 纸巾盒做外壳
2021/03/02 无线电
php基础知识:类与对象(3) 构造函数和析构函数
2006/12/13 PHP
php入门小知识
2008/03/24 PHP
mysql limit查询优化分析
2008/11/12 PHP
解析PHP 5.5 新特性
2013/07/02 PHP
PHP is_subclass_of函数的一个BUG和解决方法
2014/06/01 PHP
php上传功能集后缀名判断和随机命名(强力推荐)
2015/09/10 PHP
PHP实现的简单组词算法示例
2018/04/10 PHP
Laravel框架生命周期与原理分析
2018/06/12 PHP
JQuery autocomplete 使用手册
2010/04/01 Javascript
IE与Firefox在JavaScript上的7个不同句法分享
2011/10/30 Javascript
Javascript实现带关闭按钮的网页漂浮广告代码
2014/01/12 Javascript
将form表单中的元素转换成对象的方法适用表单提交
2014/05/02 Javascript
JavaScript使用Math.Min返回两个数中较小数的方法
2015/04/06 Javascript
JavaScript中的this机制
2016/01/30 Javascript
javascript+css3 实现动态按钮菜单特效
2016/02/06 Javascript
zTree树形菜单交互选项卡效果的实现方法
2017/12/25 Javascript
JS实现的倒计时恢复按钮点击功能【可用于协议阅读倒计时】
2018/04/19 Javascript
jQuery实现的页面详情展开收起功能示例
2018/06/11 jQuery
JavaScript new对象的四个过程实例浅析
2018/07/31 Javascript
Vue开发实现吸顶效果的示例代码
2018/08/21 Javascript
vue的路由映射问题及解决方案
2019/10/14 Javascript
JavaScript实现更换背景图片
2019/10/18 Javascript
JS实现简单打字测试
2020/06/24 Javascript
[49:31]TFT vs Mski Supermajor小组赛C组 BO3 第一场 6.3
2018/06/04 DOTA
Python 文件和输入输出小结
2013/10/09 Python
python调用Delphi写的Dll代码示例
2017/12/05 Python
Python中的Django基本命令实例详解
2018/07/15 Python
python实现求特征选择的信息增益
2018/12/18 Python
Python+OpenCV检测灯光亮点的实现方法
2020/11/02 Python
运行python提示no module named sklearn的解决方法
2020/11/29 Python
python 录制系统声音的示例
2020/12/21 Python
CSS3 Flex 弹性布局实例代码详解
2018/11/01 HTML / CSS
Viking Direct荷兰:购买办公用品
2019/06/20 全球购物
美国乒乓球设备、配件和服装品牌:Killerspin
2020/06/07 全球购物
vue实现书本翻页动画效果实例详解
2022/04/08 Vue.js