源码网,源码论坛,源码之家,商业源码,游戏源码下载,discuz插件,棋牌源码下载,精品源码论坛

 找回密码
 立即注册
查看: 181|回复: 26

[PHP编程] PHP中empty,isset,is_null用法和区别

[复制链接]

7万

主题

861

回帖

32万

积分

论坛元老

Rank: 8Rank: 8

积分
329525
发表于 2018-12-25 17:04:17 | 显示全部楼层 |阅读模式
最近在阅读项目的源码,发现源码中就对empty、isset和is_null函数(语言特性)乱用,有的地方很明显的就挖坑了。不能正确的去理解这些东西,就很可能给后续的开发挖坑了。

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 

回复

使用道具 举报

16

主题

2万

回帖

376

积分

中级会员

Rank: 3Rank: 3

积分
376
发表于 2022-8-14 05:27:20 | 显示全部楼层
看到这帖子真是高兴!
回复 支持 反对

使用道具 举报

0

主题

1万

回帖

0

积分

中级会员

Rank: 3Rank: 3

积分
0
发表于 2022-11-15 03:40:17 | 显示全部楼层
天天源码论坛
回复 支持 反对

使用道具 举报

0

主题

2万

回帖

194

积分

注册会员

Rank: 2

积分
194
发表于 2022-11-27 01:31:29 | 显示全部楼层
啊,数码撒飒飒飒飒
回复 支持 反对

使用道具 举报

0

主题

1万

回帖

0

积分

中级会员

Rank: 3Rank: 3

积分
0
发表于 2022-12-25 17:02:05 | 显示全部楼层
很不错的样子
回复 支持 反对

使用道具 举报

2

主题

2万

回帖

499

积分

中级会员

Rank: 3Rank: 3

积分
499
发表于 2023-7-2 02:01:47 | 显示全部楼层
还有什么好东西没
回复 支持 反对

使用道具 举报

7

主题

2万

回帖

288

积分

中级会员

Rank: 3Rank: 3

积分
288
发表于 2023-9-1 09:25:45 | 显示全部楼层
hi哦回复iOS就看见
回复 支持 反对

使用道具 举报

1

主题

2万

回帖

182

积分

注册会员

Rank: 2

积分
182
发表于 2024-4-10 11:27:41 | 显示全部楼层
呵呵呵呵呵呵呵a
回复 支持 反对

使用道具 举报

6

主题

2万

回帖

247

积分

中级会员

Rank: 3Rank: 3

积分
247
发表于 2024-4-30 20:01:17 | 显示全部楼层
哦哦哦哦哦哦哦哦哦
回复 支持 反对

使用道具 举报

0

主题

2万

回帖

0

积分

中级会员

Rank: 3Rank: 3

积分
0
发表于 2024-5-9 08:53:39 | 显示全部楼层
的谁vdvdsvdsvdsdsv
回复 支持 反对

使用道具 举报

高级模式
B Color Image Link Quote Code Smilies

本版积分规则

手机版|小黑屋|网站地图|源码论坛 ( 海外版 )

GMT+8, 2024-11-25 06:48 , Processed in 0.161942 second(s), 26 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表