當前位置:才華齋>計算機>php語言>

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

php語言 閱讀(2.26W)

通過對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>";