2014年1月27日 星期一

[PHP] - isset / empty 應用,檢查變數有無被宣告或設置

今天我從客戶端傳送一個 POST/GET 訊息給伺服器端 (PHP) 時,因為我傳送的資料有著不固定的名稱與內容,所以傳送了不知名稱的資料至 PHP,這時 PHP 就出錯了!

後來查了 PHP 官方文件,其實這種錯誤是能夠避免的,方法如下:

檢查一個變數是否有被設置內容時,使用 empty 來進行確認:
<?php

// 顯示為 "YES"

$var0;
$var1='';

if (empty($var0) and empty($var1))
    echo "YES";
else
    echo "NO";


// 顯示為 "FALSE"

$var2="Hello";

if(empty($var2))
    echo "TRUE";
else
    echo "FALSE";

?>

如需檢查這變數是否存在 (已宣告) ,則使用 isset 進行確認:
<?php

// 顯示為 "NO"

$var0;

if (isset($var0))
    echo "YES";
else
    echo "NO";


// 顯示為 "TRUE"

$var1='';
$var2="Hello";

if(isset($var1) and isset($var2))
    echo "TRUE";
else
    echo "FALSE";

?>

這兩種方法看起來相似,其實完完全全是兩樣不同的東西唷!

沒有留言:

張貼留言