PHP isset()与empty()的利用区别详解(2)


$id=0;
empty($id)?print "It's empty .":print "It's $id .";
//功效:It's empty .
print "<br>";
!isset($id)?print "It's empty .":print "It's $id .";
//功效:It's 0 .



这意味着,我们在利用变量处理惩罚函数时,当该变量大概呈现0的值,利用 empty() 要小心,这个时候用 isset 代替它更明智一些。
当一个php页面的 URL 尾部参数呈现 id=0 时(好比:test.php?id=0),试较量:

复制代码 代码如下:


if(empty($id)) $id=1; - 若 id=0 ,id 也会为1
if(!isset($id)) $id=1; - 若 id=0 ,id 不会为1



可分隔运行以下代码检测上述揣度:

复制代码 代码如下:


if(empty($id)) $id=1;
print $id; // 获得 1
if(!isset($id)) $id=1;
print $id; //获得 0



要说它们的接洽,其配合点就是empty()和 isset()都是变量处理惩罚函数,浸染是判定变量是否已经设置,正是由于它们在处理惩罚变量进程中有很大的相似性,才导致对它们的干系认识不敷。单从 empty()和isset()这两个函数自己来思量的话会把人弄得更糊涂,换一个角度来它。empty()和isset()的处理惩罚工具无外乎未界说变量,0,空字符串。
假如变量为0,则empty()会返回TRUE,isset()会返回TRUE;

假如变量为空字符串,则empty()会返回TRUE,isset()会返回TRUE;
假如变量未界说,则empty()会返回TRUE,isset()会返回FLASE;

手册中对empty()的表明如下:

描写bool empty( mixed var )
假如 var 长短空或非零的值,则 empty() 返回 FALSE。换句话说,”"、0、”0″、NULL、FALSE、array()、var $var; 以及没有任何属性的工具都将被认为是空的,假如 var 为空,则返回 TRUE。
手册中对isset()的表明如下:

isset()检测变量是否配置

描写bool isset ( mixed var [, mixed var [, ...]] )

假如 var 存在则返回 TRUE,不然返回 FALSE。

假如已经利用 unset() 释放了一个变量之后,它将不再是 isset()。若利用 isset() 测试一个被配置成 NULL 的变量,将返回 FALSE。同时要留意的是一个 NULL 字节(”?”)并不等同于 PHP 的 NULL 常数。
告诫: isset() 只能用于变量,因为通报任何其它参数都将造成理会错误。若想检测常量是否已配置,可利用 defined()函数。

当要 判定一个变量是否已经声明的时候 可以利用 isset 函数
当要 判定一个变量是否已经赋予数据且不为空 可以用 empty 函数
当要 判定 一个变量 存在且不为空 先isset 函数 再用 empty 函数

您大概感乐趣的文章:

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wsdssd.html