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函數
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章