2010-01-07 51 views
0

哪個是更好的,當我[「的東西在這裏」]使用_GET一個變量來檢查它是否是空的或不我應該使用null來查看PHP中的變量是否爲空?

if (isset($_GET['url']) != '') { 
    //do stuff with it 
} 

OR

if (isset($_GET['url']) != NULL) { 
    //do stuff with it 
} 

「」或空或別的東西使用?

請不要把這種過度優化或微優化,我只是在尋找最好的做法,謝謝

+1

請注意:'isset()'返回一個布爾值,所以它返回true或false,但永遠不會''或NULL。所以你的兩個例子都是錯的。 – Frunsi 2010-01-07 01:52:25

+0

@frunsi如果他們都是錯誤的,你可以幫助它正確嗎? – JasonDavis 2010-01-07 02:25:04

回答

4

你應該做到以下幾點,以確保該值都存在,並且不爲空

if(isset($_POST[myField]) && $_POST[myField] != "") { 
Do my PHP code 
} 
+0

這是我過去使用過的,但後來我看到有人像if(isset($ something))那樣做,並且我運行它並且它工作,所以我認爲它很好,我猜我應該執行2次檢查 – JasonDavis 2010-01-07 01:57:05

6

使用空() - 它的變量的實際首測測試的東西是否在它之前存在。

[編輯:isset()函數只返回TRUE或FALSE,所以無論上述工作的發言同樣]

2

在調試空白/缺失/空值檢查時,PHP可能會有點痛苦。您可以使用empty()isset(),但請記住empty返回true的情況。它與所考慮的empty高度自由。

 
Returns FALSE if var has a non-empty and non-zero value. 

The following things are considered to be empty: 

"" (an empty string) 
0 (0 as an integer) 
"0" (0 as a string) 
NULL 
FALSE 
array() (an empty array) 
var $var; (a variable declared, but without a value in a class) 

isset是,它僅檢查變量的存在和NULL值較爲保守。從documentation

 
Returns TRUE if var exists and has value other than NULL, FALSE otherwise. 
相關問題