[英]PHP If statement always firing as true
首先,我知道已經被問了一百萬遍了,但是我發現的答案似乎都不起作用。 我的“ 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標簽中。 我確定這是我所缺少的小東西,但我無法弄清楚是什么。
在此先感謝您的幫助!
您的if語句邏輯不正確。 您真正的意思是:
if($currentpage == "/recap-2013.php" || $currentpage == "/index.php" ) { ?>
在您當前的邏輯中,第二個表達式將始終為true,因為PHP輸入松散,該字符串將被評估為布爾值,並且非空字符串始終為true。
它將始終像真實一樣觸發。 為什么? 如您所見,無論第一個條件的結果如何,第二個條件肯定都將是正確的……
好吧,讓我們看看...
if($currentpage == "/recap-2013.php" || "/index.php" )
因此,第一個條件是:
if($currentpage == "/recap-2013.php")
假設結果為FALSE 。
因此,讓我們繼續第二個條件:
if("/index.php")
當然並且永遠都是正確的 !
為什么? 因為在條件語句中,只有FALSE(bool),0,NULL, 空字符串等被認為是假的。 在您的情況下, “ / index.php”既不是空字符串也不是NULL ,這就是為什么它始終為TRUE的原因 。
據我了解您的情況,您正在嘗試暗示:
if($currentpage == "/recap-2013.php" || $currentpage == "/index.php" )
注意:始終小心使用條件語句,它總是使我們程序員受益匪淺。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.