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