如果语句没有触发

时间:2014-02-08 01:20:35

标签: php

我有一个非常奇怪的问题。

这是我的代码,原样:

<?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>";
    }
?>

我做错了什么?

2 个答案:

答案 0 :(得分:4)

如果$_POST['bid'] >= $cur + 0.25false,那么if中的代码都将不会被执行。

第一段代码将进入else,但第二段不会进入第二段if

答案 1 :(得分:0)

&安培;是PHP中的按位和运算符,它的优先级高于!==运算符。尝试更换&amp;与&amp;&amp;。