PHP5中设置了最佳实践检查GET或POST,而不是empety

PHP5中设置了最佳实践检查GET或POST,而不是empety,php,Php,只是想知道以下是检查是否设置了$\u GET或$\u POST的最佳实践吗 if(isset($_GET['input']) && !empty($_GET['input'])) if(isset($_POST['input']) && !empty($_POST['input'])) 如果不是,那么最佳做法是什么?如果您的意思是,它存在并且有一个字符串值 if (isset($_GET['foo']) && strlen($_GET['foo

只是想知道以下是检查是否设置了
$\u GET
$\u POST
的最佳实践吗

if(isset($_GET['input']) && !empty($_GET['input']))

if(isset($_POST['input']) && !empty($_POST['input']))

如果不是,那么最佳做法是什么?

如果您的意思是,它存在并且有一个字符串值

if (isset($_GET['foo']) && strlen($_GET['foo'])) {   }
使用isset()和!empty()是多余的,您可以使用!空()。请确保您了解empty()的作用,它经常被误解

再想一想,在一般情况下,添加类型检查可能是个好主意,因为请求变量也可以是数组。否则,可能会产生意外的功能

if (isset($_GET['foo']) && is_string(($_GET['foo']) && strlen($_GET['foo'])) {   }

如果你的意思是,它存在并且有一个值,那么,对于字符串

if (isset($_GET['foo']) && strlen($_GET['foo'])) {   }
使用isset()和!empty()是多余的,您可以使用!空()。请确保您了解empty()的作用,它经常被误解

再想一想,在一般情况下,添加类型检查可能是个好主意,因为请求变量也可以是数组。否则,可能会产生意外的功能

if (isset($_GET['foo']) && is_string(($_GET['foo']) && strlen($_GET['foo'])) {   }

取决于用例,对吗?对于很多东西,根本不需要检查。这取决于用例,对吗?对于很多东西,根本不需要检查。它怎么是多余的
empty()
可以返回true,而
isset()
不能返回true。@ccKep这正是使用isset redudant的原因,因为您可以使用empty。不存在isset返回false,empty返回true的情况。@ccK是的,您属于误解
empty
的人,应该阅读前面链接的指南:-3@ccK是的,他把这句话搞砸了,应该是“没有任何情况下,
isset
empty
都返回
false
”。空数组没有值,但它的strlen()是5。类型检查可防止误报。它是如何冗余的
empty()
可以返回true,而
isset()
不能返回true。@ccKep这正是使用isset redudant的原因,因为您可以使用empty。不存在isset返回false,empty返回true的情况。@ccK是的,您属于误解
empty
的人,应该阅读前面链接的指南:-3@ccK是的,他把这句话搞砸了,应该是“没有任何情况下,
isset
empty
都返回
false
”。空数组没有值,但它的strlen()是5。类型检查可防止误报。