PHP isset()与empty()的使用区别

经过对PHP语言的上学,应该明了它是依据函数的意气风发款HTML脚本语言。宏大的函数库帮助着PHP语言功效的落到实处。下边大家为大家介绍有关PHP函数isset(卡塔尔与empty(卡塔尔的相干用法。

PHP的isset(State of Qatar函数 平常用来检查实验变量是或不是设置 格式:bool isset ( mixed var [, mixed var [, …]] )

在采纳 php 编写页面程序时,笔者平日使用变量管理函数判定 php
页面尾部参数的某部变量值是还是不是为空,初步的时候小编习贯了使用 empty(卡塔尔(قطر‎函数,却开采了部分主题素材,因而改用 isset(卡塔尔国 函数,难题不再。

PHP的isset(卡塔尔函数 平时用来检查实验变量是或不是设置

作用:检查评定变量是不是设置

看名就能够猜到其意义,empty(State of Qatar 判别叁个变量是还是不是为“空”,isset()剖断三个变量是还是不是业已安装。即是这种所谓的“从名称想到所包罗的意义”,令作者起来时走了些弯路:当一个变量值等于0时,empty,因此会发出
一些意想不到。原本,empty
即使都以变量管理函数,它们都用于决断变量是还是不是业已安插,它们却是有必然的界别:empty还有大概会检查测量检验变量是或不是为空、为零。当二个变量值为0,empty(卡塔尔(قطر‎觉得这一个变量同等于空,即生机勃勃对后生可畏于还未有设置。

格式:bool isset ( mixed var [, mixed var [, …]] )

返回值:

举个例子检查评定 $id 变量,当 $id=0 时,用empty 来检查测验变量 $id
是不是曾经安插,两都将赶回区别的值—— empty 能够获得 $id 的值:

职能:检查测验变量是还是不是设置

若变量不设有则赶回 FALSE
若变量存在且其值为NULL,也回到 FALSE
若变量存在且值不为NULL,则赶回 TURE
并且检查两个变量时,每一种单项都相符上一条必要时才回去 TRUE,不然结果为
FALSE
版本:PHP 3, PHP 4, PHP 5
越来越多表明:
选拔 unset(卡塔尔国 释放变量之后,它将不再是 isset(State of Qatar。
PHP函数isset(卡塔尔国只好用来变量,传递任何别的参数都将招致深入分析错误。
检查测量试验常量是或不是已安装可使用 defined(卡塔尔国 函数。

 $id=0; empty?print "It's empty .":print "It's $id ."; //结果:It's empty . print ""; !isset?print "It's empty .":print "It's $id ."; //结果:It's 0 .

返回值:

PHP的empty(State of Qatar函数 推断值为否为空

那象征,大家在接收变量管理函数时,当该变量也许现身0的值,使用 empty()要小心,这时用 isset 替代它更明智一些。

若变量不设有则赶回 FALSE
若变量存在且其值为NULL,也回到 FALSE
若变量存在且值不为NULL,则赶回 TURE
再正是检查两个变量时,每一种单项都符合上一条供给时才回到 TRUE,不然结果为
FALSE
版本:PHP 3, PHP 4, PHP 5

格式:bool empty ( mixed var )

当一个php页面包车型大巴 UHavalL 后面部分参数现身 id=0 时,试相比:

更加的多表达:

成效:检查三个变量是还是不是为空

if $id=1; - 若 id=0 ,id 也会为1if $id=1; - 若 id=0 ,id 不会为1

利用 unset(卡塔尔(قطر‎ 释放变量之后,它将不再是 isset(卡塔尔国。
PHP函数isset(卡塔尔(قطر‎只可以用于变量,传递任何其余参数都将形成深入分析错误。
检验常量是还是不是已设置可选用 defined(State of Qatar 函数。

奥门新浦京官方网站 ,返回值:

可分别运转以下代码检验上述猜度:

PHP的empty(卡塔尔国函数 决断值为否为空

若变量不设有则赶回 TRUE
若变量存在且其值为””、0、”0″、NULL、、FALSE、array(State of Qatar、var $var;
以致未有其余性质的靶子,则赶回 TURE
若变量存在且值不为””、0、”0″、NULL、、FALSE、array(State of Qatar、var $var;
以至没有别的性质的靶子,则赶回 FALSE
版本:PHP 3, PHP 4, PHP 5
更加的多表明:
empty(State of Qatar的归来值=!
var,但不会因为变量未定义而发生警示新闻。参见调换为布尔值获取越来越多音讯。
empty(卡塔尔国 只可以用来变量,传递任何其余参数都将导致Paser error而小憩运维。
检查评定常量是不是已安装可使用 defined(State of Qatar 函数。
事例: empty(卡塔尔 与 isset(卡塔尔国 的四个简易比较
复制代码 代码如下:
<?php
$var = 0;
// 结果为 true,因为 $var 为空
if (empty {
echo ‘$var is either 0 or not set at all’;
}
// 结果为 false,因为 $var 已设置
if (!isset {
echo ‘$var is not set at all’;
}
?>
注: 由于那是叁个言语布局而非函数,因而它无法被变量函数调用。
注: empty(State of Qatar只检查评定变量,检查实验任何非变量的事物都将造成拆解剖析错误。换句话说,前面包车型客车言辞将不会起功用:
empty(addslashes。
下边是通过脚本之家测量检验过的风姿洒脱段isset与empty函数详细例子的代码,看完那么些大约就差不离了:
复制代码 代码如下:
<?php
error_reporting;
echo ‘<B>未定义$var</b><Br>’;
echo “isset测试:<Br>”;
if ( isset
{
echo ‘变量$var存在!<Br>’ ;
}
echo “empty测试:<Br>”;
if ( empty {
echo ‘变量$var的值为空<Br>’;
}
else
{
echo ‘变量$var的值不为空<Br>’;
}
echo “变量间接测验:<Br>”;
if {
echo ‘变量$var存在!<Br>’;
}
else {
echo ‘变量$var不存在!<Br>’;
}
echo ‘———————————-<br>’;
echo ‘<B>$var = ”</b><Br>’;
echo “isset测试:<Br>”;
$var = ”;
if ( isset
{
echo ‘变量$var存在!<Br>’ ;
}
echo “empty测试:<Br>”;
if ( empty {
echo ‘变量$var的值为空<Br>’;
}
else
{
echo ‘变量$var的值不为空<Br>’;
}
echo “变量直接测量试验:<Br>”;
if {
echo ‘变量$var存在!<Br>’;
}
else {
echo ‘变量$var不存在!<Br>’;
}
echo ‘———————————-<br>’;
echo ‘<B>$var = 0</b><Br>’;
echo ‘isset测试:<Br>’;
$var = 0 ;
if ( isset
{
echo ‘变量$var存在!<Br>’ ;
}
echo “empty测试:<Br>”;
if ( empty {
echo ‘变量$var的值为空<Br>’;
}
else
{
echo ‘变量$var的值不为空<Br>’;
}
echo “变量直接测验:<Br>”;
if {
echo ‘变量$var存在!<Br>’;
}
else {
echo ‘变量$var不存在!<Br>’;
}
echo ‘———————————-<br>’;
echo ‘<B>$var = null</b><Br>’;
echo ‘isset测试:<Br>’;
$var = null ;
if ( isset
{
echo ‘变量$var存在!<Br>’ ;
}
echo “empty测试:<Br>”;
if ( empty {
echo ‘变量$var的值为空<Br>’;
}
else
{
echo ‘变量$var的值不为空<Br>’;
}
echo “变量直接测量检验:<Br>”;
if {
echo ‘变量$var存在!<Br>’;
}
else {
echo ‘变量$var不存在!<Br>’;
}
echo ‘———————————-<br>’;

 if $id=1; print $id; // 得到 1 if $id=1; print $id; //得到 0

格式:bool empty ( mixed var )

echo ‘<B>$var =”php”</b><Br>’;
echo ‘isset测试:<Br>’;
$var = “php”;
if ( isset
{
echo ‘变量$var存在!<Br>’ ;
}

要说它们的联系,其协同点便是empty都以变量管理函数,功用是判别变量是还是不是业已配备,正是由于它们在管理变量进度中有非常大的相同性,才促成对它们的涉及认知不足。单从
empty那五个函数自身来构思的话会把人弄得更糊涂,换三个角度来它。empty的管理目的无外乎未定义变量,0,空字符串。

效果:检查一个变量是或不是为空

echo “empty测试:<Br>”;
if ( empty {
echo ‘变量$var的值为空<Br>’;
}
else
{
echo ‘变量$var的值不为空<Br>’;
}
echo “变量直接测量检验:<Br>”;
if {
echo ‘变量$var存在!<Br>’;
}
else {
echo ‘变量$var不存在!<Br>’;
}
?>

比如变量为0,则empty会再次回到TRUE;

返回值:

在运用 php 编写页面程序时,小编时常应用变量管理函数判别 php
页面后面部分参数的有个别变量值是不是为空,开首的时候作者习于旧贯了采纳 empty()函数,却发掘了有个别标题,由此改用 isset(卡塔尔国 函数,难题不再。
看名就会知道意思,empty(卡塔尔 剖断叁个变量是不是为“空”,isset(State of Qatar决断一个变量是不是早就安装。就是这种所谓的“看名称就可以想到其意义”,令作者起来时走了些弯路:当多少个变量值等于0时,empty(State of Qatar也会树立,由此会产生一些出人意料。原来,empty(卡塔尔(قطر‎ 和 isset(卡塔尔固然都是变量处理函数,它们都用来推断变量是或不是曾经布署,它们却是有早晚的分别:empty还大概会检验变量是或不是为空、为零。当一个变量值为0,empty(卡塔尔国以为这么些变量同等于空,即风姿罗曼蒂克对风流倜傥于还未设置。
比如检查实验 $id 变量,当 $id=0 时,用empty(卡塔尔 和 isset(State of Qatar 来检查评定变量 $id
是或不是业已配备,两都将赶回区别的值—— empty(State of Qatar 认为并未有安排,isset(卡塔尔能够拿到 $id 的值:

如若变量为空字符串,则empty会重返TRUE;

若变量空头支票则赶回 TRUE
若变量存在且其值为””、0、”0″、NULL、、FALSE、array(卡塔尔国、var $var;
以至从未其余性质的对象,则赶回 TURE
若变量存在且值不为””、0、”0″、NULL、、FALSE、array(卡塔尔、var $var;
以致未有别的性质的对象,则赶回 FALSE
版本:PHP 3, PHP 4, PHP 5

复制代码 代码如下:
$id=0;
empty?print “It’s empty .”:print “It’s $id .”;
//结果:It’s empty .
print “<br>”;
!isset?print “It’s empty .”:print “It’s $id .”;
//结果:It’s 0 .

假定变量未定义,则empty会再次回到FLASE;

越来越多表明:

那象征,我们在行使变量管理函数时,当该变量恐怕出现0的值,使用 empty(卡塔尔要小心,当时用 isset 代替它更明智一些。
当二个php页面包车型地铁 ULacrosseL 尾部参数现身 id=0
时(比方:test.php?id=0),试比较:

手册中对empty(卡塔尔国的表明如下:

empty(卡塔尔国的归来值=!(boolean)var,但不会因为变量未定义而爆发警报音讯。参见转变为布尔值获取越来越多新闻。
empty(卡塔尔 只好用来变量,传递任何其余参数都将引致Paser error而消声匿迹运营。
检查评定常量是不是已设置可接受 defined(卡塔尔(قطر‎ 函数。

复制代码 代码如下:
if(empty $id=1; – 若 id=0 ,id 也会为1
if(!isset $id=1; – 若 id=0 ,id 不会为1

描述bool empty

事例: empty(卡塔尔国 与 isset(卡塔尔 的多个轻巧易行相比

可分别运转以下代码检验上述揣测:

如果 var 是非空或非零的值,则 empty(卡塔尔 重返FALSE。换句话说,””、0、”0″、NULL、FALSE、array(卡塔尔(قطر‎、var $var;
以至从未任何性质的对象都将被感觉是空的,若是 var 为空,则赶回 TRUE。

<?php 
$var = 0; 
// 结果为 true,因为 $var 为空 
if (empty($var)) { 
echo '$var is either 0 or not set at all'; 
} 
// 结果为 false,因为 $var 已设置 
if (!isset($var)) { 
echo '$var is not set at all'; 
} 
?>

复制代码 代码如下:
if(empty $id=1;
print $id; // 得到 1
if(!isset $id=1;
print $id; //得到 0

手册中对isset(卡塔尔(قطر‎的演说如下:

注: 由于那是三个言语构造而非函数,因而它无法被变量函数调用。
注: empty(卡塔尔国只检验变量,检测任何非变量的东西都将变成剖析错误。换句话说,前面包车型大巴语句将不会起效果:
empty(addslashes($name卡塔尔(قطر‎卡塔尔国。
上面是我们测验过的风姿浪漫段isset与empty函数详细例子的代码,看完那几个大概就基本上了:

要说它们的维系,其合作点就是empty(卡塔尔和
isset(卡塔尔国都以变量管理函数,效率是判断变量是不是早就安插,正是出于它们在拍卖变量进度中有非常大的相仿性,才促成对它们的关联认知不足。单从
empty这四个函数自己来假造的话会把人弄得更糊涂,换一个角度来它。empty的拍卖对象无外乎未定义变量,0,空字符串。
万黄金年代变量为0,则empty(卡塔尔国会回去TRUE,isset(卡塔尔会回到TRUE;

isset(卡塔尔(قطر‎检查测量试验变量是或不是设置

<?php 
error_reporting(E_ALL); 
echo '<B>未定义$var</b><Br>'; 
echo "isset测试:<Br>"; 
if ( isset ( $var )) 
{ 
echo '变量$var存在!<Br>' ; 
} 
echo "empty测试:<Br>"; 
if ( empty ( $var )){ 
echo '变量$var的值为空<Br>'; 
} 
else 
{ 
echo '变量$var的值不为空<Br>'; 
} 
echo "变量直接测试:<Br>"; 
if ( $var ){ 
echo '变量$var存在!<Br>'; 
} 
else { 
echo '变量$var不存在!<Br>'; 
} 
echo '----------------------------------<br>'; 
echo '<B>$var = ''</b><Br>'; 
echo "isset测试:<Br>"; 
$var = ''; 
if ( isset ( $var )) 
{ 
echo '变量$var存在!<Br>' ; 
} 
echo "empty测试:<Br>"; 
if ( empty ( $var )){ 
echo '变量$var的值为空<Br>'; 
} 
else 
{ 
echo '变量$var的值不为空<Br>'; 
} 
echo "变量直接测试:<Br>"; 
if ( $var ){ 
echo '变量$var存在!<Br>'; 
} 
else { 
echo '变量$var不存在!<Br>'; 
} 
echo '----------------------------------<br>'; 
echo '<B>$var = 0</b><Br>'; 
echo 'isset测试:<Br>'; 
$var = 0 ; 
if ( isset ( $var )) 
{ 
echo '变量$var存在!<Br>' ; 
} 
echo "empty测试:<Br>"; 
if ( empty ( $var )){ 
echo '变量$var的值为空<Br>'; 
} 
else 
{ 
echo '变量$var的值不为空<Br>'; 
} 
echo "变量直接测试:<Br>"; 
if ( $var ){ 
echo '变量$var存在!<Br>'; 
} 
else { 
echo '变量$var不存在!<Br>'; 
} 
echo '----------------------------------<br>'; 
echo '<B>$var = null</b><Br>'; 
echo 'isset测试:<Br>'; 
$var = null ; 
if ( isset ( $var )) 
{ 
echo '变量$var存在!<Br>' ; 
} 
echo "empty测试:<Br>"; 
if ( empty ( $var )){ 
echo '变量$var的值为空<Br>'; 
} 
else 
{ 
echo '变量$var的值不为空<Br>'; 
} 
echo "变量直接测试:<Br>"; 
if ( $var ){ 
echo '变量$var存在!<Br>'; 
} 
else { 
echo '变量$var不存在!<Br>'; 
} 
echo '----------------------------------<br>'; 

echo '<B>$var ="php"</b><Br>'; 
echo 'isset测试:<Br>'; 
$var = "php"; 
if ( isset ( $var )) 
{ 
echo '变量$var存在!<Br>' ; 
} 

echo "empty测试:<Br>"; 
if ( empty ( $var )){ 
echo '变量$var的值为空<Br>'; 
} 
else 
{ 
echo '变量$var的值不为空<Br>'; 
} 
echo "变量直接测试:<Br>"; 
if ( $var ){ 
echo '变量$var存在!<Br>'; 
} 
else { 
echo '变量$var不存在!<Br>'; 
} 
?>

要是变量为空字符串,则empty(卡塔尔(قطر‎会回来TRUE,isset(卡塔尔(قطر‎会回来TRUE;
借使变量未定义,则empty(卡塔尔国会回来TRUE,isset(卡塔尔会回去FLASE;

描述bool isset ( mixed var [, mixed var [, …]] )

在利用 php 编写页面程序时,作者临时采纳变量管理函数判别 php
页面尾巴部分参数的某些变量值是不是为空,开端的时候自身习于旧贯了应用 empty()函数,却开掘了有的难题,因而改用 isset(卡塔尔 函数,难点不再。

手册中对empty(卡塔尔(قطر‎的解说如下:

即使 var 存在则赶回 TRUE,不然再次回到 FALSE。

看名就会知道意思,empty(State of Qatar 剖断一个变量是还是不是为“空”,isset(State of Qatar判别二个变量是否早就设置。正是这种所谓的“看名就能够知道意思”,令本人起头时走了些弯路:当贰个变量值等于0时,empty(卡塔尔国也会创制(True),因而会发出
一些竟然。原本,empty(State of Qatar 和 isset(卡塔尔国尽管都以变量管理函数,它们都用于判定变量是还是不是已经布署,它们却是有必然的差异:empty还可能会检查实验变量是或不是为空、为零。当一个变量值为0,empty(State of Qatar感觉那一个变量同等于空,即一定于还未有安装。

描述bool empty( mixed var )
若果 var 是非空或非零的值,则 empty(卡塔尔国 再次来到FALSE。换句话说,””、0、”0″、NULL、FALSE、array(卡塔尔、var $var;
以至未有别的性质的靶子都将被以为是空的,如若 var 为空,则赶回 TRUE。
手册中对isset(State of Qatar的表明如下:

若是已经接收 unset(State of Qatar 释放了二个变量之后,它将不再是 isset
测验多少个棉被服装置成 NULL的变量,将赶回 FALSE。同临时常间要注意的是二个 NULL
字节并不均等 PHP 的 NULL 常数。

譬喻检查实验 $id 变量,当 $id=0 时,用empty(卡塔尔国 和 isset(卡塔尔(قطر‎ 来检查实验变量 $id
是不是业已配备,两都将赶回分歧的值—— empty(卡塔尔国 感觉并未有安排,isset(卡塔尔国能够获取 $id 的值:

isset(State of Qatar检验变量是或不是设置

告诫: isset(卡塔尔国只好用来变量,因为传递任何其余参数都将招致拆解剖析错误。若想质量评定常量是还是不是已设置,可使用defined(卡塔尔(قطر‎函数。

$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 .

描述bool isset ( mixed var [, mixed var [, …]] )

当要 判定三个变量是或不是曾经宣称的时候 能够动用 isset 函数

那代表,我们在利用变量管理函数时,当该变量大概出现0的值,使用 empty(State of Qatar要小心,那时候用 isset 取代它更明智一些。
当二个php页面包车型地铁 UEscortL 尾巴部分参数现身 id=0
时(比如:test.php?id=0),试比较:

假诺 var 存在则赶回 TRUE,不然重返 FALSE。

当要 判别二个变量是或不是已经付与数据且不为空 能够用 empty 函数

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

倘使已经选取 unset(卡塔尔 释放了一个变量之后,它将不再是 isset(State of Qatar。若接受isset(卡塔尔 测验三个棉被服装置成 NULL 的变量,将再次回到 FALSE。同时要在意的是一个NULL 字节(”?”)并不近似 PHP 的 NULL 常数。
警戒: isset()只可以用来变量,因为传递任何其余参数都将招致深入剖判错误。若想检查实验常量是不是已设置,可采取defined(State of Qatar函数。

当要 决断 三个变量 存在且不为空 先isset 函数 再用 empty 函数

可分别运维以下代码检查评定上述揣摸:

当要 推断二个变量是不是已经宣称的时候
能够行使 isset 函数
当要 推断一个变量是或不是已经赋予数据且不为空 能够用 empty 函数
当要 剖断 多少个变量 存在且不为空 先isset 函数 再用 empty 函数

以上正是本文的全部内容,希望本文的剧情对大家的就学大概办事能带动一定的支援,同期也期待多多关照脚本之家!

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

要说它们的牵连,其协同点就是empty(卡塔尔和
isset(State of Qatar都以变量管理函数,成效是剖断变量是还是不是已经布置,正是出于它们在管理变量进度中有超级大的相符性,才招致对它们的关系认知不足。单从
empty(卡塔尔和isset(卡塔尔(قطر‎那四个函数本人来虚构的话会把人弄得更糊涂,换一个角度来它。empty(卡塔尔和isset(卡塔尔(قطر‎的拍卖对象无外乎未定义变量,0,空字符串。

只要变量为0,则empty(卡塔尔国会重回TRUE,isset(卡塔尔国会重返TRUE;

设若变量为空字符串,则empty(State of Qatar会重临TRUE,isset(卡塔尔国会回来TRUE;
假定变量未定义,则empty(卡塔尔国会重返TRUE,isset(State of Qatar会回来FLASE;

手册中对empty(卡塔尔的分解如下:

描述bool empty( mixed var )
只要 var 是非空或非零的值,则 empty(State of Qatar 再次回到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 函数

发表评论

电子邮件地址不会被公开。 必填项已用*标注