我在使用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似乎可以返回单选按钮的值,但如果选择“否”,则不会返回,我尝试删除“已检查”部分,但无济于事。无论我尝试什么,我都无法得到它来检索“0”值。
我记得使用PHP数组来命名复选框,但是确实不需要单选按钮,因为只能在任何时候选择它吗?
或者PHP在返回值为0的单选按钮时遇到问题?
或者我在没有意识到的情况下做了可怕的错误?
答案 0 :(得分:5)
PHP函数为空将为0,NULL,“”等返回false。
引自php.net:
“”(空字符串)
0(0为整数)
0.0(0作为浮点数)
“0”(0作为字符串)
NULL
FALSE
array()(一个空数组)
var $ var; (声明的变量,但在类中没有值)
所有这些都将返回(false),从而使if语句的执行无效。
您必须根据自己希望完成的内容修改条件以反映值。
祝你好运!答案 1 :(得分:3)
你的问题是empty()将零视为空值,无论它是数字0还是字符串'0'。因此,不要使用empty()而是使用isset()和/或直接检查,例如
if (isset($_POST['admin'])) {
或
if (isset($_POST['admin']) && $_POST['admin'] == 0) {
答案 2 :(得分:0)
我相信零是你的问题。尝试将它们设置为“Y”和“N”,您应该看到N值通过。这是因为0是PHP中的空值。