我有一个非常奇怪的问题。
这是我的代码,原样:
<?php
$cur = file_get_contents("./req.txt");
if(($_POST['bid'] >= $cur + 0.25) & $_POST['contact'] !== '')
{
$fi2 = "./req.txt";
file_put_contents($fi2, $_POST['bid']);
echo "<font color=\"red\" size=\"5\">Success</font>";
}
else
{
echo "<font color=\"red\" size=\"5\">Error.</font>";
}
?>
当它是这样的时候,它可以正常工作。
但是,如果我将else
更改为if($_POST['bid'] >= $cur + 0.25)
(从上方复制并粘贴),页面加载正常并且不会运行file_put_contents
,但它不会回声Error
。这就是代码的变化:
<?php
$cur = file_get_contents("./req.txt");
if(($_POST['bid'] >= $cur + 0.25) & $_POST['contact'] !== '')
{
$fi2 = "./req.txt";
file_put_contents($fi2, $_POST['bid']);
echo "<font color=\"red\" size=\"5\">Success</font>";
}
if($_POST['bid'] >= $cur + 0.25)
{
echo "<font color=\"red\" size=\"5\">Error.</font>";
}
?>
我做错了什么?
答案 0 :(得分:4)
如果$_POST['bid'] >= $cur + 0.25
为false
,那么if中的代码都将不会被执行。
第一段代码将进入else
,但第二段不会进入第二段if
。
答案 1 :(得分:0)
&安培;是PHP中的按位和运算符,它的优先级高于!==运算符。尝试更换&amp;与&amp;&amp;。