我有一堆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语句,因为它会破坏我已经很糟糕的新手代码。有什么建议吗?
答案 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()是不好的做法。您可能应该找到另一种方法。