用作叁个PHPer,必定要多看PHP手册,每过壹还击册,你总会开掘有的原先被您忽略的局地东西; 大家能够从各类不一致的地方/路子学习到PHP的连锁文化,但也不用忘记大家的手册,PHP手册永恒是读书和升级换代PHP的一本好书; 看到非常的多博文都有冲突过 ‘empty()的坑’、‘empty的差异’ 之类 ,其实手册中很完整的交由了那个相关函数的注意点和区分
表达式 | gettype() | empty() | is_null() | isset() | boolean:if |
---|---|---|---|---|---|
$x = ""; | string | TRUE |
FALSE |
TRUE |
FALSE |
$x = null; | NULL | TRUE |
TRUE |
FALSE |
FALSE |
var $x; | NULL | TRUE |
TRUE |
FALSE |
FALSE |
$xis undefined | NULL | TRUE |
TRUE |
FALSE |
FALSE |
$x = array(); | array | TRUE |
FALSE |
TRUE |
FALSE |
$x = false; | boolean | TRUE |
FALSE |
TRUE |
FALSE |
$x = true; | boolean | FALSE |
FALSE |
TRUE |
TRUE |
$x = 1; | integer | FALSE |
FALSE |
TRUE |
TRUE |
$x = 42; | integer | FALSE |
FALSE |
TRUE |
TRUE |
$x = 0; | integer | TRUE |
FALSE |
TRUE |
FALSE |
$x = -1; | integer | FALSE |
FALSE |
TRUE |
TRUE |
$x = "1"; | string | FALSE |
FALSE |
TRUE |
TRUE |
$x = "0"; | string | TRUE |
FALSE |
TRUE |
FALSE |
$x = "-1"; | string | FALSE |
FALSE |
TRUE |
TRUE |
$x = "php"; | string | FALSE |
FALSE |
TRUE |
TRUE |
$x = "true"; | string | FALSE |
FALSE |
TRUE |
TRUE |
$x = "false"; | string | FALSE |
FALSE |
TRUE |
TRUE |
在使用 php 编写页面程序时,作者时时应用变量管理函数判断 php 页面后面部分参数的有个别变量值是还是不是为空,先导的时候小编习贯了使用 empty() 函数,却发掘了一些主题材料,因而改用 isset() 函数,难点不再。
望文生义,empty() 剖断一个变量是还是不是为“空”,isset() 推断二个变量是不是业已安装。就是这种所谓的“看名就会知道意思”,令笔者起来时走了些弯路:当三个变量值等于0时,empty()也会创建(True),由此会发出 一些意外。原本,empty() 和 isset() 即使都是变量管理函数,它们都用来判别变量是不是早就布置,它们却是有必然的区分:empty还有恐怕会检验变量是还是不是为空、为零。当二个变量值为0,empty() 以为那么些变量同等于空,即一对一于尚未安装。
比方说检查实验 $id 变量,当 $id=0 时,用empty() 和 isset() 来检查测量检验变量 $id 是还是不是业已配备,两都将回到不一致的值—— empty() 以为尚未铺排,isset() 能够收获 $id 的值:
$id=0;
empty($id)?print "It's empty .":print "It's $id .";
//结果:It's empty .
print "
";
!isset($id)?print "It's empty .":print "It's $id .";
//结果:It's 0 .
这意味,大家在应用变量管理函数时,当该变量恐怕现身0的值,使用 empty() 要小心,那年用 isset 替代它更加精圣元些。
当多少个php页面包车型大巴 U陆风X8L 尾部参数出现 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 函数
以上正是本文的全部内容,希望本文的故事情节对咱们的读书大概干活能拉动一定的佑助,同不通常间也希望多多支持脚本之家!
你或者感兴趣的小说:
- PHP中empty和isset对于参数结构的判别及empty()和isset()的区分
- php empty()与isset()不相同的事无巨细介绍
- 深入PHP empty(),isset(),is_null()的实例测量试验详解
- PHP表单验证的3个函数ISSET()、empty()、is_numeric()的行使情势
- PHP isset()与empty()的应用分别详解
本文由大发体育娱乐在线发布于编程应用,转载请注明出处:的利用分别详解,PHP函数比较变量
关键词: