PHP简单的运算符逻辑

时间:2012-02-05 19:31:02

标签: php if-statement

这真让我困扰。我遇到一些非常简单的逻辑问题。变量必须介于5和35之间。如果是,我想打印pass,如果不打印失败。对于我的生活,我不能让它发挥作用。它如此简单......

    if($turboPressure > 5 && $turboPressure < 35) 
    {print "pass";}
    else
    {print "fail";}

这是我最近的尝试......我尝试了4种不同的条件而且都没有工作......请帮忙。

如果有人想看一下,我想你可以在...查看 http://www.deltacst.net/php06/Lab4/Lab4.html

4 个答案:

答案 0 :(得分:3)

您的代码运行正常。这是证据:

foreach( range( 0, 40) as $turboPressure)
{
    echo $turboPressure . ' ';
    echo (($turboPressure > 5 && $turboPressure < 35) ? 'pass' : 'fail');
    echo "\n";
}

这会循环显示0到40,使用您编写的相同条件打印通过或失败。

您可能想要这样做:

$turboPressure = intval( $turboPressure); 

这确保您处理的是整数而不是字符串。如果您正在使用字符串,则您的比较将失败。

我的样本中唯一棘手的部分是ternary operator,它采用了这个:

if( condition)
    $var = 'something1';
else
    $var = 'something2';

并将其转换为

$var = (condition) ? 'something1' : 'something2';

Watch it work.

修改

根据您的示例代码,您应该$turboPressure这样:

 $turboPressure = intval( $_POST['turboPressure']);

答案 1 :(得分:0)

这很有效。或者实际应该工作。也许你在代码部分输错了一些你没有告诉我们的东西。请给我们整个代码(或至少重要部分)。如果是日志,请尝试使用pastebin.com。

另外,使用echo而不是print是一种很好的做法。

重要提示:$turboPressure不会自动变为$_POST["turboPressure"],您必须添加第$turboPressure=$_POST["turboPressure"];

答案 2 :(得分:0)

可能需要先将$ turboPressure转换为int类型。

无论如何,你必须检查实际的$ turboPressure值。不拼写。不是间接问题,但这个价值本身,更好地使用var_dump()

答案 3 :(得分:0)

这段特殊的代码似乎工作得很好......我的服务器(http://www.deltacst.net/php06/Lab4/error_log)有一个错误日志文件,显示你的php代码中的错误

第14行

(3个错误) 第23行(2个错误) 在谎言31(1错误)

检查你的php文件中的这些行,或者重新编写你的问题所有php文件的全部代码,这可能对你有所帮助