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. 
相关问题