PHP中的PHP if语句

时间:2017-04-30 23:59:04

标签: php html if-statement

我正在检查我的变量中存储的值是否等于0或1 根据值,我想在我的html表单中显示一些文本。
我在$ details [' status']里面的值是string类型的0。

当我在if-else结构之外的print_r()时,结果是0 但是,如果我在if语句中使用print_r(),我什么也得不到。
我做了一个var_dump(),其值是string

<form class="form-horizontal" action="/MVC/teacher/becomeTeacher" method="post">
    <?php print_r($details['status'])?> <!-- Gives me 0 -->

    <?php if($details['status'] === 1): ?>
        This will show if the status value is 1.
    <? elseif ($details['status'] === 0): ?>
        Otherwise this will show.
    <?php endif; ?>
</form>

修改

我尝试了多种选择。

选项A - 两个if语句都执行。

<?php if($details['status'] == 0): ?>
        This will show if the expression is true.
    <? elseif ($details['status'] == 1): ?>
        Otherwise this will show.
    <?php endif; ?>

选项B - 两个if语句都执行

<?php if($details['status'] === '0'): ?>
        This will show if the expression is true.
    <? elseif ($details['status'] === '1'): ?>
        Otherwise this will show.
    <?php endif; ?>

我找到了一个解决方案,但我发现它是多余的

<?php if($details['status'] === '1'): ?>
        This will show if the expression is true.

    <?php endif; ?>
    <?php if($details['status'] === '0'): ?>
        Otherwise this will show.
    <?php endif; ?>

2 个答案:

答案 0 :(得分:1)

我发现了这个问题。

你在elseif行上错过了来自<?的php。它应该是<?php,除非你启用了短标签,我猜你没有。

<?php if($details['status'] == 0): ?>
        This will show if the expression is true.
    <? elseif ($details['status'] == 1): ?>
        Otherwise this will show.
    <?php endif; ?>

应该是:

<?php if($details['status'] == 0): ?>
        This will show if the expression is true.
    <?php elseif ($details['status'] == 1): ?>
        Otherwise this will show.
    <?php endif; ?>

答案 1 :(得分:0)

我认为问题在于“===”,===用于比较确切的类型,我认为在你的情况下,$ detail ['status'] =“0”实际上是字符串,所以它不会进入你的任何if语句。

Here a reference to php comparison operators。希望它有所帮助。

在您的情况下,将if语句更改为DATE()将解决您的问题。