首先,我知道这已被问过一百万次,但我找到的答案似乎都没有效果。我在'Header.php'页面中有以下if语句:
<?php
$currentpage = $_SERVER['REQUEST_URI'];
echo($currentpage);
if($currentpage == "/recap-2013.php" || "/index.php" ) { ?>
<script src=... a bunch of HTML
<?php } ?>
如果$ currentpage等于recap-2013.php或index.php,那么想要插入一些JS,如果没有,则不做任何操作。
我已在其中添加了echo($currentpage)
来检查REQUEST_URI
是什么。
问题是,即使请求URI是/someotherpage.php,语句的计算结果为true,JS出现在我的head标签中。我确定这是一件小事,我很想念,但我无法弄清楚是什么。
提前感谢您的帮助!
答案 0 :(得分:6)
您的if语句逻辑不正确。你的真正含义是:
if($currentpage == "/recap-2013.php" || $currentpage == "/index.php" ) { ?>
在您当前的逻辑中,第二个表达式将始终为true,因为PHP键入松散,字符串将被计算为布尔值,非空字符串始终为true。
答案 1 :(得分:1)
它总是FIRE为真。为什么?正如你所看到的,无论第一个条件的结果是什么,它都会在第二个条件下顺利而且总是如此......
好的,让我们看看......
if($currentpage == "/recap-2013.php" || "/index.php" )
所以第一个条件是:
if($currentpage == "/recap-2013.php")
假设结果是 FALSE 。
让我们继续第二个条件:
if("/index.php")
SURELY并且总是 TRUE !
为什么呢?因为在条件语句中只有FALSE(bool),0,NULL,空字符串等... 被认为是假的。在您的情况下,“/ index.php”不是空字符串,也不是 NULL ,这就是为什么它总是 TRUE 。
当我了解你的情况时,你试图暗示:
if($currentpage == "/recap-2013.php" || $currentpage == "/index.php" )
注意:总是要小心条件语句,它总是让我们的程序员很多。