带有空和isset的PHP POST数组
我有以下多个复选框选择:带有空和isset的PHP POST数组,php,Php,我有以下多个复选框选择: <input type="checkbox" name="fruit_list[]" value="apple">Apple <input type="checkbox" name="fruit_list[]" value="banana">Banana <input type="checkbox" name="fruit_list[]" value="mango">Mango <input type="checkbox" na
<input type="checkbox" name="fruit_list[]" value="apple">Apple
<input type="checkbox" name="fruit_list[]" value="banana">Banana
<input type="checkbox" name="fruit_list[]" value="mango">Mango
<input type="checkbox" name="fruit_list[]" value="orange">Orange
我的问题(以上代码有效!但我不清楚):
$\u POST
数组是否包含名为$\u POST['fruit\u list']
的索引empty()
?不存在的数组元素表示NULL
有什么区别!isset($\u POST['fruit\u list'])
而不是empty()
empty()
和isset()
之间的区别
你能在这个例子的上下文中解释一下吗?使用print\u r()打印post数据
<?php
echo "<pre>"; print_r($_POST);
if (empty($_POST['fruit_list']) ){
echo "You must select at least one fruit.<br>";
}
else{
foreach ( $_POST['fruit_list'] as $frname ){
echo "Favourite fruit: $frname<br>";
}
}
?>
如果不选中任何复选框,则将不会获得$\u POST['fruit\u list'],数组中不存在数组索引fruit\u list
查看isset()
和empty()
$\u POST['fruit\u list']
array\u key\u exists
,因为如果有空值isset
将返回false
但对你来说,isset是个好办法
isset
-确定变量是否已设置且不为空(有任何值)
empty
-确定变量是否为空(0,null',false,array()),但您无法理解变量或键是否存在
例如:
答复:
1.$\u POST
数组不包含$\u POST['fruit\u list']
2.第一个答案是“No”。如果变量不存在或其值等于FALSE,则认为该变量为空
empty()
如果变量不存在,则不会生成警告。3Empty检查变量是否已设置,如果已设置,则检查变量是否为null、“、0等。
Isset只检查是否已设置,它可以是非空的任何内容 你可以自己做一个小实验来发现这一点。我是初学者。我试过alreadyOk,但至少自己回答第一个问题。根据@Manjeet Barnala的回答,我非常理解第一个问题的答案。我打印了POST数组。谢谢
<?php
echo "<pre>"; print_r($_POST);
if (empty($_POST['fruit_list']) ){
echo "You must select at least one fruit.<br>";
}
else{
foreach ( $_POST['fruit_list'] as $frname ){
echo "Favourite fruit: $frname<br>";
}
}
?>
$_POST['test'] = 0;
print 'isset check: ';
var_dump(isset($_POST['test']));
print 'empty check: ';
var_dump(empty($_POST['test']));
$_POST['test'] = null;
print 'isset NULL check: ';
var_dump(isset($_POST['test']));
print 'key exists NULL check: ';
var_dump(array_key_exists('test', $_POST));
isset check: bool(true)
empty check: bool(true)
isset NULL check: bool(false)
key exists NULL check: bool(true)