isset 和empty 的區別

2021-06-11 05:25:46 字數 2984 閱讀 3343

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))  

// 結果為 false,因為 $var 已設定 

if (!isset($var))  

?> 

注: 由於這是乙個語言結構而非函式,因此它無法被變數函式呼叫。 

注: empty() 只檢測變數,檢測任何非變數的東西都將導致解析錯誤。換句話說,後邊的語句將不會起作用: empty(addslashes($name))。 

下面是經過指令碼之家測試過的一段isset與empty函式詳細例子的**,看完這個基本上就差不多了:

複製**

**如下:

<?php 

error_reporting(e_all); 

echo '未定義$var

'; 

echo "isset測試:

"; 

if ( isset ( $var ))   

echo "empty測試:

"; 

if ( empty ( $var )) 

else   

echo "變數直接測試:

"; 

if ( $var ) 

else  

echo '----------------------------------

'; 

echo '$var = \'\'

'; 

echo "isset測試:

"; 

$var = ''; 

if ( isset ( $var ))   

echo "empty測試:

"; 

if ( empty ( $var )) 

else   

echo "變數直接測試:

"; 

if ( $var ) 

else  

echo '----------------------------------

'; 

echo '$var = 0

'; 

echo 'isset測試:

'; 

$var = 0 ; 

if ( isset ( $var ))   

echo "empty測試:

"; 

if ( empty ( $var )) 

else   

echo "變數直接測試:

"; 

if ( $var ) 

else  

echo '----------------------------------

'; 

echo '$var = null

'; 

echo 'isset測試:

'; 

$var = null ; 

if ( isset ( $var ))   

echo "empty測試:

"; 

if ( empty ( $var )) 

else   

echo "變數直接測試:

"; 

if ( $var ) 

else  

echo '----------------------------------

'; 

echo '$var ="php"

'; 

echo 'isset測試:

'; 

$var = "php"; 

if ( isset ( $var ))   

echo "empty測試:

"; 

if ( empty ( $var )) 

else   

echo "變數直接測試:

"; 

if ( $var ) 

else  

?>

empty 和isset 的區別

在使用 php 編寫頁面程式時,我經常使用變數處理函式判斷 php 頁面尾部引數的某個變數值是否為空,開始的時候我習慣了使用 empty 函式,卻發現了一些問題,因此改用 isset 函式,問題不再。顧名思義,empty 判斷乙個變數是否為 空 isset 判斷乙個變數是否已經設定。正是這種所謂的 ...

empty 和isset的區別

empty是判斷乙個變數是否為空,如果 變數 是非空或非零的值,則 empty 返回 false。換句話說,0 0 null false array var var 未定義 以及沒有任何屬性的物件都將被認為是空的,如果 var 為空,則返回 true。1 數字0 2 空的字元 3 定義為null的變...

empty和isset的區別

今天再做乙個功能時,需要檢測檢測資料庫某個欄位為是否為空,特地複習了乙個下幾個檢測函式複習一下。判斷乙個變數是否為空 null false 00 0 0 都會返回true。判斷乙個變數是否設定 0 00 0 false false null 都返回true。只有值為null的變數返回true 0 0...