如果条件包含在php中,请隐藏html

时间:2017-02-09 20:08:52

标签: php html if-statement

我想借助html格式提供一些php。

我的目的是打印:

生命状态:死亡(纽约1850年)

或(如果没有死):

生活状态:活着

只有当条件$life_status设置为"死"时才应打印地点和日期。

以下代码适用于死亡情况,但不适用于活着的情况。

<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)。

如何在&#34;(in)。&#34;?

上应用php条件

3 个答案:

答案 0 :(得分:2)

您的操作员检查$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>

答案 1 :(得分:1)

您使用的操作符错误。 =是赋值,==测试相等。

<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块的外部来解决我在评论中提到的问题。)

答案 2 :(得分:-1)

在Php字符串中不直接比较,可能不会给出预期的结果。因此,使用strcmp();功能会做的工作。当比较的2个字符串相等时它返回0并且是区分大小写的函数。

在你的情况下:

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

我使用了Php Ternary运算符,称为Shorthand if / else。 的!如果它的真值显示死输出,则将0反转为1,否则将显示Alive输出。

Php Ternary:http://php.net/manual/en/language.operators.comparison.php

Php strcmp():http://php.net/manual/en/function.strcmp.php

我希望它有所帮助:)

此致 SA