簡體   English   中英

如果條件包含在php中,則隱藏html

[英]Hide html when included inside php if condition

我想借助html格式介紹一些php。

我的目的是打印:

生命狀態:已死亡(紐約為1850年)

或(如果尚未死亡):

生活狀態:活着

僅當條件$life_status設置為“ dead”時,才應打印位置和日期。

以下代碼適用於死態,但不適用於死態。

<h3>Title</h3>
<ul>
    <li>Life status: <?php echo $life_status;?>
    <?php if($life_status="dead"):?>
        (<?php echo $date_death; ?> in <?php echo $place_death; ?>).
       </li>
    <?php endif; ?>
</ul>

對於活着的狀態,我獲得:

生命狀態:活着(中)。

如何在“(in)”中應用php條件?

您的操作員檢查$life_status是否已死是錯誤的。 它是一個單一的相等值,應為兩倍。 下面的代碼反映了這些更改,並實現了@AmericanUmlaut在上面的注釋中正確建議的內容,以使您的html實際上有效。

<h3>Title</h3>
<ul>
    <li>Life status: <?php echo $life_status;?>
    <?php if($life_status == "dead"):?>  // This maybe the issue, wrong operator used to evaluate.
        (<?php echo $date_death; ?> in <?php echo $place_death; ?>).
    <?php endif; ?>
    </li>
</ul>

您使用了錯誤的運算符。 =是分配, ==測試是否相等。

<h3>Title</h3>
<ul>
    <li>Life status: <?php echo $life_status;?>
    <?php if($life_status=="dead"):?> // == here instead of =
        (<?php echo $date_death; ?> in <?php echo $place_death; ?>).
    <?php endif; ?>
    </li>
</ul>

(請注意,我也將if塊移到了外部,以解決我在評論中指出的問題。)

在Php中,不會直接比較字符串,並且可能無法給出預期的結果。 因此,使用strcmp(); 功能將完成工作。 當比較的兩個字符串相等時,它返回0,並且是區分大小寫的函數。

在您的情況下:

<h3>Title</h3>
<ul>
    <li>
        Life status: <?php 
            echo ( !strcmp($life_status,"dead") ) ? 'Dead ( '.$date_death.' in '.$place_death.' ).' : 'Alive' ;
       ?>
    </li>
</ul>

我曾經使用過被稱為Shorthand if / else的Php三元運算符。 如果為true,則會將0反轉為1,以顯示Dead輸出,否則將顯示Alive輸出。

PHP三元組: http : //php.net/manual/zh/language.operators.comparison.php

PHP strcmp(): http : //php.net/manual/zh/function.strcmp.php

希望對您有所幫助:)

此致SA

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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