本文實例講述了php中isset與empty函數的困惑與用法。分享給大家供大家參考,具體如下:
在學習php有一段時間之后,感覺自己的基礎知識還是有點不牢固,有的問題就不怎么知道,比如就有一個,在判斷一個變量是否為空的情況下,我就不知道是用isset()還是empty()。今天我就來分析該用哪個函數。
isset():用于判斷一個函數是否被設置過,如果設置過就為true,否則就為false,但是有一個例外,就是如果一個變量被設置成null的話,此時也會返回的也是false。
<?php $a = null; var_dump(isset($a));//a變量已賦值,但是被設置成null,故返回false var_dump(isset($b));//內存中不存在變量b,故返回false 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 var_dump(empty($_GET['id']));//如果$_GET['id']不存在,則返回true;如果存在,但是值是上述條件,則還是返回true。?>
總結:如果是判斷一個變量是否存在,可以用isset()和empty();如果判斷變量的值是否為空,那么就用empty()。
注意:以前我在做項目的時候,出現了這樣的一個問題,我把select下拉列表框的選中的值傳到服務器,服務器從超全局數組中獲取到了值,但是當時我不清楚isset()和empty()的區別,當時只知道他們都能判斷變量是否存在,結果我用了empty()函數,最后,就出現bug了,我用empty()進行判斷,把我傳過來的變量的值為0的情況就給排除了。
所有在這里提醒大家,如果只是判斷變量是否為空,最好還是用isset()。
希望本文所述對大家PHP程序設計有所幫助。
新聞熱點
疑難解答
圖片精選