一、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函數