簡體   English   中英

PHP If語句始終觸發為true

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM