我在使用PHP检索单选按钮的值时遇到了一个真正的问题。我有两个单选按钮:
<input name="admin" type="radio" value="1" />Yes
<input name="admin" type="radio" value="0" checked />No
还有一个条件PHP语句,检查PHP是否可以从中检索任何数据:
if(!empty($_POST['admin'])) {
// do stuff
}
else {
echo "Value not set";
}
问题是,如果选择"是",PHP似乎会为单选按钮返回一个值,但如果选择"否",PHP就不会返回。我曾尝试删除"已检查"部分,但没有成功。无论我尝试什么,我都无法让它检索"0"值。
我记得我使用PHP数组来命名复选框,但单选按钮肯定不需要这样做,因为任何时候都只能选择?
或者PHP只是在返回值为0的单选按钮时出现问题?
还是我在没有意识到的情况下做错了什么?
PHP函数为空时,0、NULL、"将返回false&";,以及其他。
引用php.net:
"quot;(空字符串)
0(0为整数)
0.0(0作为浮动)
"0";(0作为字符串)
空
假
array()(空数组)
var$var;(已声明的变量,但类中没有值)
所有这些都将返回(false),从而使if语句的执行无效。
你将不得不修改你的条件,以反映一个价值观,这取决于你想要实现的目标。
祝你好运!
您的问题是empty()将零视为空值,无论它是数字0还是字符串'0'。因此,与其使用empty(),不如使用isset()和/或直接检查,例如
if (isset($_POST['admin'])) {
或
if (isset($_POST['admin']) && $_POST['admin'] == 0) {
我相信零是你的问题。尝试将它们设置为"Y"answers"N",您应该会看到N值通过。这是因为0在PHP中是一个空值。