PHP變數判斷的問題(isset,NULL,empty)

PHP變數判斷的問題(isset,NULL,empty)

請問:

\"要判斷變數是否為空的\",或者是\"根本沒這個變數\",有差別嗎?

前者用NULL,後者用!isset,這樣嗎?還是兩個都可呢?

isset()、NULL、empty(),全部都是一樣的嗎?

假設要判斷某個值有沒有POST過來,

方法是if($_POST[\'變數\']==NULL)還是if(isset($_POST[\'變數\']))

還是if(empty($_POST[\'變數\']))比較適合?

我記得如果用empty碰到開頭是0不知道會怎樣@@

可以詳細解釋一下嗎,感激不盡!!

2 Answers

Rating
  • 1 decade ago
    Favorite Answer

    我自己是比較常用 isset(),而 NULL 和 empty() 我幾乎不用。

    一般我要判斷某個 POST 欄位有沒有填東西,是用兩個條件判斷:

    if ( isset($_POST['變數']) && $_POST['變數'] != '' ) { print '正常'; }

    else { print '錯誤'; }

    其中第一個條件「isset($_POST['變數'])」是為了檢查這個變數存不存在;

    而第二個條件「$_POST['變數'] != ''」是檢查這個變數是否為空字串。

    雖然我很少用 empty(),但你既然問了,我就順便寫一下它的規則:

    empty() 對於以下值的變數會回傳 true:

    "" (空字串)

    0 (整數)

    "0" (字串)

    NULL

    FALSE

    array() (空陣列)

    var $var; (宣告過的變數,但未設初始值)

    • Login to reply the answers
  • 1 decade ago

    empty() 這個 command 我倒是很少用

    變數如果有定義, 不管它是何值, isset() 都會傳回 true;

    做個實驗:

    if ( isset( $_POST["aaa"] ) ) { echo "variable \$aaa is set !!"; }

    else { echo "variable \$aaa is not set!!!"; }

    if ( $_POST["aaa"] == "" ) { echo "variable is null"; }

    else { echo "variable is not null" ; }

    測一下, 就知到這兩者的差別啦....

    要check某一個變數有沒有過來, 建議用 isset() 啦 !!

    Source(s): 我.
    • Login to reply the answers
Still have questions? Get your answers by asking now.