php基础 unset()、isset()、defined()、empty()

一、unset()
unset()是注销定义的变量,注意在 PHP 3 中,unset() 将返回 TRUE(实际上是整型值 1),而在 PHP 4 中,unset() 不再是一个真正的函数:它现在是一个语句。这样就没有了返回值,试图获取 unset() 的返回值将导致解析错误。

<?php
$a="hello";
$b= &$a;
unset($b);
if(!isset($b)){
    echo "vrjnhh";
}

运行结果:
这里写图片描述
可见,使用unset()语句后变量将被销毁。

二、isset()
isset()用于判断一个变量是否定义过。
返回值:

若变量不存在则返回FALSE
若变量存在且其值为NULL,也返回FALSE
若变量存在且值不为NULL(包括0),则返回TURE
同时检查多个变量时,每个单项都符号上一条要求时才返回TRUE,否则结果为FALSE

isset()只能用于变量,因为传递任何其它参数都将造成解析错误。若想检测常量是否已设置,可使用defined()函数。

<?php
$a="";
if(isset($a)){
    echo "1";
}else{
    echo '0';
}

运行结果:
这里写图片描述

<?php
$a=null;
if(isset($a)){
    echo "1";
}else{
    echo '0';
}

运行结果:

这里写图片描述

三、defined()
defined() 函数检查某常量是否存在。
返回值:

  若常量存在,则返回 true,否则返回 false。
<?php
define("GREETING","Hello world!");
echo defined("GREETING");
?>

运行结果:
这里写图片描述

四、empty()
empty()用于检查一个变量是否为空。
返回值:

若变量不存在则返回TRUE
若变量存在且值为""、0、"0"、NULL、、FALSE、array()、var $var;以及没有任何属性的对象,则返回TURE
若变量存在且值不为""、0、"0"、NULL、、FALSE、array()、var $var;以及没有任何属性的对象,则返回FALSE

empty()只能用于变量,传递任何其它参数都将造成Paser error而终止运行。

<?php
$a=null;
if(empty($a)){
    echo "1";
}else{
    echo '0';
}

运行结果:

这里写图片描述

<?php
if(empty($a=123)){
    echo "1";
}else{
    echo '0';
}

输出结果:

这里写图片描述

五、isset()和empty()区别

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

运行结果:

这里写图片描述

小结:

当要判断一个变量是否已经声明的时候可以使用isset函数
当要判断一个变量是否已经赋予数据且补位空,可以用empty函数
当要判断一个变量存在且不为空,先isset函数,再用empty函数
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章