在if语句PHP中传递变量

时间:2012-10-01 23:10:08

标签: php if-statement

我有一堆if语句,它们根据传递的信息有不同的过滤器。

稍后在代码中我还需要在IF语句中重用该过滤器,这里是变量

$over5hours = "$workextra->id > 767 && $workextra->id <=1301";

现在这是我的if语句

if($userid==$workextra->ownerId && $workextra->hoursDone >= 5 && $over5hours)

但是,over5hours变量只显示:&gt; 767&amp;&amp; &lt; 1301而不是在IF语句中写入整个字符串。

除了将该变量转换为数组之外还有一种更简单的方法,我不想写2x的IF语句,因为它会破坏我已经很糟糕的新手代码。有什么建议吗?

4 个答案:

答案 0 :(得分:2)

假设我理解了你的目标,你可以简单地删除$ over5hours值附近的引号。

$over5hours = $workextra->id > 767 && $workextra->id <=1301;
但是,我可能会误解你的目标。

答案 1 :(得分:1)

你无法插入那样的语句。 ... && $over5hours不会将$over5hours评估为表达式;它只是一个字符串,与$anyRandomString == true相同。您可以做的最好是首先将表达式计算为布尔值,然后在if语句中使用它:

$over5hours = $workextra->id > 767 && $workextra->id <=1301;
if ($userid == $workextra->ownerId && $workextra->hoursDone >= 5 && $over5hours)

答案 2 :(得分:0)

如果使用单引号而不是双引号,则不会计算变量。

另外,如果$ workextra-&gt; id的值没有改变,你可以简单地省略引号。

答案 3 :(得分:0)

您需要使用单引号或转义$以使其打印。但除此之外,您还需要使用eval()来使代码以您想要的方式运行。但是使用eval()是不好的做法。您可能应该找到另一种方法。