PHP中isset()與empty()的使用區別詳解

來源:文萃谷 2.18W

通過對PHP語言的學習,應該知道它是基於函數的一款HTML腳本語言。龐大的函數庫支持着PHP語言功能的實現。下面我們為大家介紹有關PHP函數isset()與empty()的相關用法。

PHP中isset()與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() 的一個簡單比較

複製代碼 代碼如下:

<?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>";

熱門標籤