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 array_flip() 删除重复数组元素专用函数
May 16 PHP
Look And Say 序列php实现代码
May 22 PHP
PHP输出数组中重名的元素的几种处理方法
Sep 05 PHP
php 模拟 asp.net webFrom 按钮提交事件的思路及代码
Dec 02 PHP
php 生成自动创建文件夹并上传文件的示例代码
Mar 07 PHP
php断点续传之如何分割合并文件
Mar 22 PHP
PHP自定session保存路径及删除、注销与写入的方法
Nov 18 PHP
php实现改变图片直接打开为下载的方法
Apr 14 PHP
php对数组内元素进行随机调换的方法
May 12 PHP
php封装的验证码工具类完整实例
Oct 19 PHP
详解PHP 7.4 中数组延展操作符语法知识点
Jul 19 PHP
PHP7 其他修改
Mar 09 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
当年上海收录机产品生产,进口和价格情况
2021/03/04 无线电
Smarty中调用FCKeditor的方法
2014/10/27 PHP
高质量PHP代码的50个实用技巧必备(上)
2016/01/22 PHP
PHP操作Redis常用技巧总结
2018/04/24 PHP
跨浏览器开发经验总结(三)   警惕“IE依赖综合症”
2010/05/13 Javascript
Jquery中对数组的操作代码
2011/08/12 Javascript
js中文逗号转英文实现
2014/02/11 Javascript
JavaScript中使用ActiveXObject操作本地文件夹的方法
2014/03/28 Javascript
js中回调函数的学习笔记
2014/07/31 Javascript
jQuery手风琴的简单制作
2017/05/12 jQuery
JavaScript中document.referrer的用法详解
2017/07/04 Javascript
vue获取input输入值的问题解决办法
2017/10/17 Javascript
Angular实现的内置过滤器orderBy排序与模糊查询功能示例
2017/12/29 Javascript
Node.js静态服务器的实现方法
2018/02/28 Javascript
深入浅析Vue全局组件与局部组件的区别
2018/06/15 Javascript
Vue自定义弹窗指令的实现代码
2018/08/13 Javascript
Nodejs让异步变成同步的方法
2019/03/02 NodeJs
如何安装多版本python python2和python3共存以及pip共存
2018/09/18 Python
对dataframe数据之间求补集的实例详解
2019/01/30 Python
python整合ffmpeg实现视频文件的批量转换
2019/05/31 Python
python实现列表中最大最小值输出的示例
2019/07/09 Python
python实现输出一个序列的所有子序列示例
2019/11/18 Python
使用python动态生成波形曲线的实现
2019/12/04 Python
pyenv虚拟环境管理python多版本和软件库的方法
2019/12/26 Python
Python pysnmp使用方法及代码实例
2020/08/24 Python
Python gevent协程切换实现详解
2020/09/14 Python
自考生毕业自我鉴定
2013/10/10 职场文书
后勤采购员岗位职责
2013/12/19 职场文书
创建青年文明号材料
2014/05/09 职场文书
单位委托函范文
2015/01/29 职场文书
三峡大坝导游词
2015/01/31 职场文书
学校青年志愿者活动总结
2015/05/06 职场文书
2019年最新感恩节祝福语(28句)
2019/11/27 职场文书
python本地文件服务器实例教程
2021/05/02 Python
前端JavaScript大管家 package.json
2021/11/02 Javascript
【DOTA2】高能暴走TK秀!PSG LGD vs ASTER - DPC 2022 WINTER TOUR CN
2022/04/02 DOTA