我有一个包含姓名,电台和电子邮件的表格。
<form action="index.php" method="POST" role="form">
<input class="form-control" name="name" type="text" placeholder="NAME">
<input class="form-control" name="email" type="text" placeholder="EMAIL(optional)">
<input type="radio" class="form-check-input" name="gender" value="male">Male
<input type="radio" class="form-check-input" name="gender" value="female">Female
<input type="radio" class="form-check-input" name="gender" value="other">Other
...
要测试是否填写姓名,电子邮件或广播,我使用isset
if (isset($_POST['name'])) {
echo 'name isset';
}
if (isset($_POST['email'])) {
echo 'email isset';
}
if (isset($_POST['gender'])) {
echo 'gender isset';
}
我不明白的是:即使我将这些字段留空,它也会从name
和email
循环中输出2个回显,但不会输出gender
循环。
有人可以解释一下,即使我将字段保留为空并提交,为什么name和email的返回值为TRUE?为什么,如果我没有单击任何收音机,则此返回值为FALSE? (echo 'gender isset';
未输出!)
$_POST['name']
将包含空字符串''
功能isset
检查该值是否存在并且与null
不同。在您的情况下,空字符串不同于null
并且存在。
您可以改用empty
,它将起作用。
例如:
if (!empty($_POST['name'])) {
echo 'name isset';
}
至于收音机-如果未选择,则不发送。这就是isset
在那里工作的原因。