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 相关文章推荐
ThinkPHP之N方法实例详解
Jun 20 PHP
ThinkPHP多表联合查询的常用方法
Mar 24 PHP
PHP页面转UTF-8中文编码乱码的解决办法
Oct 20 PHP
PHP多维数组遍历方法(2种实现方法)
Dec 10 PHP
PHP时间类完整实例(非常实用)
Dec 25 PHP
php简单截取字符串代码示例
Oct 19 PHP
php+mysql+jquery实现日历签到功能
Feb 27 PHP
php利用云片网实现短信验证码功能的示例代码
Nov 18 PHP
PHP addcslashes()函数讲解
Feb 03 PHP
PHP5.6读写excel表格文件操作示例
Feb 26 PHP
php设计模式之工厂模式用法经典实例分析
Sep 20 PHP
laravel5.6 框架操作数据 Eloquent ORM用法示例
Jan 26 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
怎样给PHP源代码加密?PHP二进制加密与解密的解决办法
2013/04/22 PHP
php array_udiff_assoc 计算两个数组的差集实例
2016/11/12 PHP
PHP实现的字符串匹配算法示例【sunday算法】
2017/12/19 PHP
人人网javascript面试题 可以提前实现下
2012/01/05 Javascript
JS匀速运动演示示例代码
2013/11/26 Javascript
js获取select标签选中值的两种方式
2014/01/09 Javascript
sails框架的学习指南
2014/12/22 Javascript
AngularJS在IE8的不支持的解决方法
2016/05/13 Javascript
JS图片定时翻滚效果实现方法
2016/06/21 Javascript
jQuery设置聚焦并使光标位置在文字最后的实现方法
2016/08/02 Javascript
详解nodejs 文本操作模块-fs模块(三)
2016/12/22 NodeJs
jQuery Validate 相关参数及常用的自定义验证规则
2017/03/06 Javascript
基于JavaScript实现多级菜单效果
2017/07/25 Javascript
jQuery中复合选择器简单用法示例
2018/03/31 jQuery
小程序关于请求同步的总结
2019/05/05 Javascript
解决ele ui 表格表头太长问题的实现
2019/11/13 Javascript
深入讲解Python函数中参数的使用及默认参数的陷阱
2016/03/13 Python
利用Python中SocketServer 实现客户端与服务器间非阻塞通信
2016/12/15 Python
CentOS 6.5中安装Python 3.6.2的方法步骤
2017/12/03 Python
Python使用progressbar模块实现的显示进度条功能
2018/05/31 Python
Django uwsgi Nginx 的生产环境部署详解
2019/02/02 Python
Django框架orM与自定义SQL语句混合事务控制操作
2019/06/27 Python
使用Python来做一个屏幕录制工具的操作代码
2020/01/18 Python
python如何导出微信公众号文章方法详解
2020/08/31 Python
Django数据模型中on_delete使用详解
2020/11/30 Python
HTML高亮关键字的实现代码
2018/10/22 HTML / CSS
尤妮佳moony海外旗舰店:日本殿堂级纸尿裤品牌
2018/02/23 全球购物
澳大利亚最大的百货公司:Myer
2018/12/21 全球购物
求∏的近似值,直到最后一项的绝对值小于指定的数
2016/02/12 面试题
材料加工工程求职信
2014/02/19 职场文书
开业典礼主持词
2014/03/21 职场文书
小学生学雷锋演讲稿
2014/04/25 职场文书
民主评议党员自我评价材料
2014/09/18 职场文书
向雷锋同志学习倡议书
2015/04/27 职场文书
活动宣传稿范文
2015/07/23 职场文书
导游词之蜀山胜景瓦屋山
2019/11/29 职场文书