PHP中的isset、unset指令

關於isset指令,適用於檢查變數、陣列等等對象的記憶體位置是否有存取任何東西,若該記憶體位置是空的(沒有存取任何東西)則會回傳0,若該記憶體位置有存取任何東西,則回傳1。

利用isset檢查變數中是否有東西:

$site = "https://www.google.com/";
if(isset($site)==1){
echo  "<br/>\n" , $site , "<br/>\n" ;
echo 'if成立' , "<br>\n" ;
}
其結果會執行if內容,因為isset檢查$site回傳1。


若直接輸出,當變數不為空值(null),會輸出1,給予空值則不會輸出。

$hhh='A';
echo isset($hhh);
                              <輸出1>
$hhh=null;
echo isset($hhh);
                              <無輸出任何東西>



另外利用unset則是可以將已宣告的變數或陣列等等已定義之物件,刪除它的定義,在unset之後該物件就等於沒有了,不可再使用(因為沒有定義了)。
$n=array(array('5cm','15cm'),array('2.5cm','3.75cm'));
for($i=0;$i<2;$i++){
for($j=0;$j<2;$j++){
echo $n[$i][$j];
}
}
以上陣列依序正常輸出,若用isset檢查其中之一位置,因空間有儲存東西,所以為1。

unset($n);
for($i=0;$i<2;$i++){
for($j=0;$j<2;$j++){
echo $n[$i][$j];
}
}
經過unset後,$n陣列已經刪除,所以程式已無法判斷此物件,故會出現未定義(連續4次)。

當然也可以一次多個。
echo isset($hhh,$site,$n);
unset($hhh,$site,$n);


至於isset與unset用途與用法當然是視使用者撰寫內容與應用而有所不同。

留言