PHP中empty()和isset()的區別

一、empty函數 php

用途:檢測變量是否爲空ide

判斷:若是 var 是非空或非零的值,則 empty() 返回 FALSE。換句話說,""、0、"0"、NULL、FALSE、array()、var $var; 以及沒有任何屬性的對象都將被認爲是空的,若是 var 爲空,則返回 TRUE。來源手冊:http://php.net/manual/zh/function.empty.php 函數

注意:empty() 只檢測變量,檢測任何非變量的東西都將致使解析錯誤。測試

$name=0;.net

$name='';對象

$name=null;it

$name="0";io

$name;function

if(empty($name))class

{

echo "ok"; //上面五種寫法empty($name)都是 true

}

if(empty($na))  //結果爲 true 因爲變量$na未定義

二、isset函數

用途:檢測變量是否設置

判斷:檢測變量是否設置,而且不是 NULL。若是已經使用 unset() 釋放了一個變量以後,它將再也不是 isset()。若使用 isset() 測試一個被設置成 NULL 的變量,將返回 FALSE。同時要注意的是一個NULL 字節("\0")並不等同於 PHP 的 NULL 常數。

isset 函數是用於檢測這個變量是否設置過,在下面兩種狀況下會認爲 isset爲假

①$id; 沒有給任何值

②或者就是根本沒有定義.

所以咱們建議在 判斷某個表單是否提交有數據,使用isset來判斷if(isset($_GET/$_POST['變量']){echo $_GET['變量']}else{ echo '沒有傳遞數據'}

例子:

$a1 = null;

$a2 = false;

$a3 = 0;

$a4 = '';

$a5 = '0';

$a6 = 'null';

$a7 = array();

$a8 = array(array());

echo empty($a1) ? ‘true’ : ‘false’;//輸出true

echo empty($a2) ? ‘true’ : ‘false’;//輸出true

echo empty($a3) ? ‘true’ : ‘false’;//輸出true

echo empty($a4) ? ‘true’ : ‘false’;//輸出true

echo empty($a5) ? ‘true’ : ‘false’;//輸出true

echo empty($a6) ? ‘true’ : ‘false’;//輸出false

echo empty($a7) ? ‘true’ : ‘false’;//輸出true

echo empty($a8) ? ‘true’ : ‘false’;//輸出false

echo ‘<br/>’;

echo isset($a1) ? ‘true’ : ‘false’;//輸出false

echo isset($a2) ? ‘true’ : ‘false’;//輸出true

echo isset($a3) ? ‘true’ : ‘false’;//輸出true

echo isset($a4) ? ‘true’ : ‘false’;//輸出true

echo isset($a5) ? ‘true’ : ‘false’;//輸出true

echo isset($a6) ? ‘true’ : ‘false’;//輸出true

echo isset($a7) ? ‘true’ : ‘false’;//輸出true

echo isset($a8) ? ‘true’ : ‘false’;//輸出true


一、isset值對於變量沒有賦值或者賦值爲NULL時判斷false,其他都是true;

二、empty須要注意點比較多,要根據函數的定義來作判斷.

相關文章
相關標籤/搜索