php中isset與empty函式的困惑與用法分析

2022-09-27 03:42:08 字數 1266 閱讀 5523

在學習p有一段時間之後,感覺自己的基礎知識還是有點不牢固,有的問題就不怎麼知道,比如就有乙個,在判斷乙個變數是否為空的情況下,我就不知道是用isset()還是empty()。今天我就來分析該用哪個函式。

isset():用於判斷乙個函式是否被設定過,如果設定過就為true,否則就為false,但是有乙個例外,就是如果乙個變數被設定成null的話,此時也會返回的也是false。

<?php $a = null;

var_dump(isset($a));//a變數已賦值,但是被設定成null,故返回false

var_dump(isset($b));//記憶體中不存在變數b,故返回fwww.cppcns.comalse

var_dump(isset($_get['id']));//如果$_get['id']變數不存在,則返回false;如果$_get['id']存在,則返回true

?>

empty():用於判斷乙個變數是否為空,如果是整形的0,浮點型的0.0,字元型的' 『和'0',還有布林型的false,null型的null,空陣列等

<?php $a = null;

var_dump(empty($a));//true

$b = "";

var_dump(empty($b));//true

$c = "0";

var_dump(empty($b));//true

$c = 0;

var_dump(empty($b));//true

$e = false;

var_dump(empty($e));//true

$f = array();

var_dump(empty($f));//true

var_dump(empty($g));//$g變數不存在,返回true

'id']));//如果$_get['id']不存在,則返回true;如果存在,但是值是上述條件,則還是返回true。

?>

總結:如果是判斷乙個變數是否存在,可以用isset()和empty();如果判程式設計客棧斷變數的值是否為空,那麼就用empty()。

注意:以前我在做專案的時候,出現了這樣的乙個問題,我把select下拉列表框的選中的值傳到伺服器,伺服器從超全域性陣列中獲取到了值,但是當時我不清楚isset()和e程式設計客棧mpty()的區別,當時只知道他們都能判斷變數是否存在,結果我用了empty()函式,最後,就出現bug了,我用empty()進行判斷,把我傳過來的變數的值為0的情況就給排除了。

所有在這裡提醒大家,如果只是判斷變數是否為空,最好還是用isset()。

php中isset 和empty 區別

1 isset 用於檢測變數是否設定值 若變數不存在則返回 false 若變數存在且其值為null,也返回 false 若變數存在且值不為null,則返回 ture 同時檢查多個變數時,每個單項都符合上一條要求時才返回 true,否則結果為 false empty 用於檢測變數是否為空 若變數不存在...

php中isset和empty區別

php語言isset和empty的區別 empty 判斷乙個變數是否為 空 isset 判斷乙個變數是否已經設定。正是這種所謂的 顧名思義 令我開始時走了些彎路 1.當乙個變數值等於0時,empty 也會成立 true 因而會發生一些意外。原來,empty 和 isset 雖然都是變數處理函式,它們...

PHP中isset 與empty 函式的區別

兩者都是測試變數用的。isset 是測試變數是否被賦值 empty 是測試乙個已經被賦值的變數是否為空。注意 如果乙個變數沒被賦值就引用在php裡是被允許的,但會有notice提示。如果乙個變數被賦空值,foo 或者 foo 0或者 foo false,那麼empty foo 返回真,isset f...