空的PHP回应不起作用

时间:2016-01-14 21:11:28

标签: php

我试图在$visible不为空时隐藏表格行:

<?php
$visible = "yes";  // hide the row if different than "0"
?>
<HTML>
//Big HTML Block
<tr<?= !$visible ? "" : "class=\"hidden\""; ?>>

但我的输出是:

<tr>

而不是:

<tr class="hidden">

出了什么问题?有没有更好的方法去做我在这里尝试做的事情? 我这样做基本上是因为我想在代码的顶部定义,在大量HTML代码之后的<TR>是否可见。它是我正在创建的一种模板。

4 个答案:

答案 0 :(得分:2)

"yes"是一个字符串,而不是布尔值。因此,只要字符串不为空(或特殊情况"0"),php就会将其解释为true。因此!$visible = !true = false。因此选择了三元条件下的第二个分支。无论如何,你的逻辑似乎是倒退的。尝试使用布尔true代替字符串"yes"并删除!

<?php
$visible = true;
?>
<HTML>
//Big HTML Block
<tr<?= $visible ? "" : " class=\"hidden\""; ?>>

答案 1 :(得分:0)

    <?php
    $visible = true;  // hide the row if different than "0"
    ?>
    <HTML>
    //Big HTML Block
    <tr<?php if($visible)
    echo "class=\"hidden\"";
    else
    echo ""; ?>>

答案 2 :(得分:0)

你必须检查它是否是“是”

<?= $visible == "yes" ? "show" : "" ?>

或者将值设置为类似

的布尔值
$visible = true

答案 3 :(得分:0)

我还在学习,但如果你在没有条件的情况下写作,我发现评估条件更容易阅读。另外,使用&#34;&#34;周围&#39;&#39;而不是逃避每个报价。试试那些代码,我可能会遗漏一些东西。

    <?php
        $invisible = true;  // hide the row if different than "0"
    ?>

    <tr class="<?= $invisible ? 'hidden' : ''; ?>">
       #stuff
    </tr>