Php 代码错误回发

Php 代码错误回发,php,Php,有人能帮我检查一下我的代码吗?不管我点击了什么值,收音机总是在最后一个上检查。它不能正确回发,但是返回的“echo”值是正确的 非常感谢 这是我的密码 <html> <form id="form" name="form" method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>"> <input type="radio" name="foo" value="Apple" checked="

有人能帮我检查一下我的代码吗?不管我点击了什么值,收音机总是在最后一个上检查。它不能正确回发,但是返回的“echo”值是正确的

非常感谢

这是我的密码

<html>
  <form id="form" name="form"  method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">

<input type="radio" name="foo" value="Apple" checked="checked" <?php if(isset($_POST['foo']) == 'Apple'): echo "checked='checked'"; endif; ?>/>Apple
<input type="radio" name="foo" value="Banana"  <?php if(isset($_POST['foo']) == 'Banana'): echo "checked='checked'"; endif; ?>/>Banana
<input type="radio" name="foo" value="Orange" <?php if(isset($_POST['foo']) == 'Orange'): echo "checked='checked'"; endif; ?>/>Orange

<input type="submit" value="Confirm" /> </form>

<? if(isset($_POST['foo']))
{echo $_POST['foo'];
}
?>

 </html>


您的比较基于的返回值,当它们应该测试
$\u POST['foo']
的值时,如下所示:

if(isset($_POST['foo']) && $_POST['foo'] == 'Orange'):

否则,
true==“Orange”
实际上是因为PHP是松散类型的,并且在后台执行类型强制,这就是为什么会得到这个奇怪的结果。

您的比较基于的返回值,而他们应该测试
$\u POST['foo']
的值,如下所示:

if(isset($_POST['foo']) && $_POST['foo'] == 'Orange'):
否则,
true=='Orange'
实际上是因为PHP是松散类型的,并且在幕后执行类型强制,这就是为什么会得到这个奇怪的结果。

这里是您的问题:

if(isset($_POST['foo']) == 'Orange')
isset
返回true或false,由于PHP比较弱,
true=='Orange'
。您将希望改为执行以下操作:

if(isset($_POST['foo']) && $_POST['foo'] == 'Orange')
这是你的问题:

if(isset($_POST['foo']) == 'Orange')
isset
返回true或false,由于PHP比较弱,
true=='Orange'
。您将希望改为执行以下操作:

if(isset($_POST['foo']) && $_POST['foo'] == 'Orange')

谢谢你的回答!我现在明白了:-)@pst如果您没有isset,PHP尝试引用数组中不存在的键,它将发出错误。。。不是吗?谢谢你的回答!我现在明白了:-)@pst如果您没有isset,PHP尝试引用数组中不存在的键,它将发出错误。。。不是吗?谢谢你的及时回答,我想我也犯了同样的错误。现在我明白了如何修复它:-)谢谢你,我知道这有点离题@nickb,但是你能给出一个很好的理由来解释为什么人们仍然在PHP中使用
==
而不是
==
?我只是不明白这有什么意义。谢谢你的及时回答,我想我也犯了同样的错误。现在我明白了如何修复它:-)谢谢你,我知道这有点离题@nickb,但是你能给出一个很好的理由来解释为什么人们仍然在PHP中使用
==
而不是
==
?我看不出有什么意义。