最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
再谈php中empty与isset区别详解
时间:2022-06-24 19:57:16 编辑:袖梨 来源:一聚教程网
empty是判断变量值是非空或非零的值。对应空定义包括:“”(空字符串)、0、“0”、NULL、FALSE、array()和$var(只声明但未赋值)。也就是说当变量值为上述这些,empty返回TRUE,其他的都返回FALSE。
isset是检测变量是否设置,并且不是 NULL。变量设置可以从几个方面来说。1:最简单的就是变量是否先声明和赋值;2:array中是否存在对应的index或key;3:object中是否存在对应的属性。
从上面的两个function定义可以看到,在某些情况下,两者可以公用,但其区别还是很大的。另外它们都只能检测变量,检测任何非变量的东西都将导致解析错误。例如直接检查另一个function的返回值(empty(otherFunction())),你将看到“Fatal error: Can’t use function return value in write context in”这样的错误。
另外isset可以一次检查多个变量,例如:isset($var1, $var2, $var3),当这三个值分别的isset都为TRUE结果为TRUE,否则结果为FALSE。
测试代码:
| 代码如下 | 复制代码 |
|
$sep = " echo 'test undeclared var empty : '; $var; $var = NULL; $var1 = ''; $var2 = '0'; $var3 = 0; $var4 = FALSE; $var5 = array(); echo $sep . 'test '' empty : '; |
|
输出的结果为:
| 代码如下 | 复制代码 |
|
test undeclared var empty : bool(true) |
|
比如检测 $id 变量,当 $id=0 时,用empty() 和 isset() 来检测变量 $id 是否已经配置,两都将返回不同的值—— empty() 认为没有配置,isset() 能够取得 $id 的值:
| 代码如下 | 复制代码 |
|
$id=0; |
|
这意味着,我们在使用变量处理函数时,当该变量可能出现0的值,使用 empty() 要小心,这个时候用 isset 取代它更明智一些。
当一个php页面的 URL 尾部参数出现 id=0 时(比如:test.php?id=0),试比较:
| 代码如下 | 复制代码 |
|
if(empty($id)) $id=1; - 若 id=0 ,id 也会为1 |
|
可分开运行以下代码检测上述推断:
| 代码如下 | 复制代码 |
|
if(empty($id)) $id=1; if(!isset($id)) $id=1; |
|
相关文章
- 《一耽女孩》官网入口地址直达 12-21
- 蓝莓影院官网最新入口-2026蓝莓影院电视剧全网免费观看 12-21
- 阿里旺旺网页版在线登录入口-阿里旺旺网页版官方唯一在线入口 12-21
- 学习通网页版登录入口 学校通官方免费在线使用指南 12-21
- 抖币充值官网入口-抖音1:10比例抖币直充链接 12-21
- 百度云盘网页版直达入口-百度网盘网页版快捷登录入口 12-21