我的表单的一部分是输入隐藏字段:
<input type="hidden" name="dump" id="dump" value="">
在这个隐藏字段中保存一个数组, 现在我想问你哪个检查这个数组是否为空或者数组是否包含值的最佳方法是什么?
这就是我所做的:
if($_POST["dump"] == "") {
$arr = json_decode($_POST["dump"], true);
if(count($arr) == 0) {
echo "no value´s";
$url = "";
header("Location:".$url);
exit();
}
}
你怎么看?有没有其他的,也许更安全的方式来做到这一点?
问候!!
答案 0 :(得分:1)
PHP.net报告:
如果var存在并且具有非空的非零值,则返回FALSE。否则返回TRUE。
以下内容被认为是空的:
“”(空字符串)
0(0为整数)
0.0(0作为浮点数)
“0”(0作为字符串)
NULL
FALSE
array()(一个空数组)
$变种; (声明的变量,但没有值)
它检查很多var可以为空的情况。
所以你可能想要使用
if(empty($var)){
// Yes, really empty
} else {
// Not empty at all
}
答案 1 :(得分:1)
$dump = $_POST['dump'];
if (!empty($dump)) {
$arr = json_decode($dump, true);
if (!empty($arr)) {
// data is correct
}//add else
}//add else
如果empty()
是包含至少一个元素的数组,则 $arr
将仅为false(在本例中)。如果json_decode
失败(将返回“NULL”)也是如此。您永远不能信任用户输入,因此应始终检查其正确性!
答案 2 :(得分:0)
好的,这很好用,可以吗? :
if(empty($_POST["dump"])) {
$arr = json_decode($_POST["dump"], true);
if(count($arr) == 0) {
$url = "http://test80948.test-account.com/tweetmilliono/test.php";
header("Location:".$url);
exit();
}
}