查看内容

的使用区别详解

  • 2020-03-31 08:37
  • 澳门太阳集团2007网站
  • Views

由此对PHP语言的学习,应该通晓它是依赖函数的一款HTML脚本语言。庞大的函数库帮助着PHP语言效用的落实。上边大家为我们介绍有关PHP函数isset(State of Qatar与empty(卡塔尔国的连带用法。

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

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

功效:检测变量是不是设置

返回值:

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

更加的多表明:

运用 unset(卡塔尔国 释放变量之后,它将不再是 isset(卡塔尔(قطر‎。
PHP函数isset(卡塔尔(قطر‎只可以用于变量,传递任何别的参数都将招致解析错误。
检查实验常量是否已安装可应用 defined(卡塔尔 函数。

PHP的empty(卡塔尔(قطر‎函数 推断值为否为空

格式:bool empty ( mixed var )

效用:检查二个变量是还是不是为空

返回值:

若变量海市蜃楼则赶回 TRUE
若变量存在且其值为”"、0、”0″、NULL、、FALSE、array(卡塔尔国、var $var; 以至从未任何性质的对象,则赶回 TURE
若变量存在且值不为”"、0、”0″、NULL、、FALSE、array(卡塔尔、var $var; 以至从未其余性质的对象,则赶回 FALSE
版本:PHP 3, PHP 4, PHP 5

愈来愈多表明:

empty(卡塔尔国的回来值=!(boolean)var,但不会因为变量未定义而发出警示音讯。参见转变为布尔值获取越多音讯。
empty(卡塔尔国 只好用于变量,传递任何其余参数都将导致Paser error而安歇运转。
检验常量是或不是已设置可接收 defined(卡塔尔 函数。

事例: empty(卡塔尔(قطر‎ 与 isset(State of Qatar 的二个归Nabi较

<?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'; 
} 
?>

注: 由于那是一个语言结构而非函数,因而它不可能被变量函数调用。
注: empty(卡塔尔(قطر‎只检查测量试验变量,检查实验任何非变量的东西都将促成深入分析错误。换句话说,前边的语句将不会起效果: empty(addslashes($name卡塔尔卡塔尔国。
上边是大家测量试验过的一段isset与empty函数详细例子的代码,看完这么些大约就基本上了:

<?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>'; 
} 
?>

在应用 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 "<br>"; 
!isset($id)?print "It's empty .":print "It's $id ."; 
//结果:It's 0 .

那表示,我们在使用变量管理函数时,当该变量或然现身0的值,使用 empty(卡塔尔要小心,那时候用 isset 代替它越来越精惠氏(WYETH卡塔尔国些。
当一个php页面包车型的士 UPAJEROL 背后部分参数现身 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(State of Qatar和isset(卡塔尔那七个函数本人来思量的话会把人弄得更糊涂,换多个角度来它。empty(卡塔尔(قطر‎和isset(卡塔尔的管理指标无外乎未定义变量,0,空字符串。

要是变量为0,则empty(卡塔尔会回到TRUE,isset(State of Qatar会回到TRUE;

倘诺变量为空字符串,则empty(卡塔尔会回到TRUE,isset(State of Qatar会回到TRUE;
假设变量未定义,则empty(卡塔尔会回到TRUE,isset(卡塔尔会回到FLASE;

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

描述bool empty( mixed var )
假使 var 是非空或非零的值,则 empty(卡塔尔国 重返FALSE。换句话说,””、0、”0″、NULL、FALSE、array(卡塔尔、var $var; 甚至从未别的性质的目的都将被以为是空的,假设 var 为空,则赶回 TRUE。

手册中对isset(State of Qatar的解释如下:

isset(卡塔尔(قطر‎检查实验变量是还是不是设置

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

一经 var 存在则赶回 TRUE,不然重回 FALSE。

借使已经应用 unset(卡塔尔 释放了七个变量之后,它将不再是 isset(卡塔尔国。若接收isset(卡塔尔 测量试验多少个棉被服装置成 NULL 的变量,将回来 FALSE。同偶尔间要注意的是一个NULL 字节(”?”)并不均等 PHP 的 NULL 常数。
警告: isset(卡塔尔国只好用来变量,因为传递任何其余参数都将招致深入剖判错误。若想检查测验常量是或不是已安装,可选择defined(卡塔尔国函数。

当要 决断二个变量是不是曾经宣示的时候 能够应用 isset 函数
当要 判别一个变量是或不是早就给与数据且不为空 能够用 empty 函数
当要 判定 一个变量 存在且不为空 先isset 函数 再用 empty 函数

上一篇:没有了 下一篇:没有了