如果php内容中的声明,包含html代码

时间:2018-07-11 14:24:03

标签: php html

<?php

    $content = "

            <table style='text-align: center;'>
                <tr>
                    <td style='text-align: center;'>
                       ".$result->name."
                    </td>
                </tr>
            </table>

我有上面的代码,我想知道是否可以在第二个if的{​​{1}}内添加style语句,所以td

有什么办法可以做到这一点?

请注意,如果名称存在,则上面的代码将打印名称,否则,将打印空的if ($result->name == ""){display: none;}

谢谢!

3 个答案:

答案 0 :(得分:2)

当然,请使用三元运算符...

$content = "<table style='text-align: center;'>
               <tr>
                   <td style='text-align: center;" . ($result->name == 'Foo Bar' ? ' display:none;' : '') . "'>
                      ".$result->name."
                   </td>
               </tr>
           </table>"

答案 1 :(得分:2)

您可以通过以下几种方式进行操作:

1:使用Ternary Operator

<?php
$content = "

    <table style='text-align: center;'>
        <tr>
            <td style='text-align: center;" . ($result->name ? " display: none;" : "") . "'>
                {$result->name}
            </td>
        </tr>
    </table>
";


2:将CSS分配给变量并进行插值

<?php
$css = $result->name ? " display: none;" : "";
$content = "

    <table style='text-align: center;'>
        <tr>
            <td style='text-align: center;{$css}'>
                {$result->name}
            </td>
        </tr>
    </table>
";


3:将$ content变量赋值分成几部分,以便您可以使用if()条件

<?php
$content = "

    <table style='text-align: center;'>
        <tr>
            <td style='text-align: center;";

if($result->name) $content .= " display: none;";

$content .= "'>
                {$result->name}
            </td>
        </tr>
    </table>
";


4:使用PHP的 template 样式语法

<table style='text-align: center;'>
    <tr>
        <td style='text-align: center;<?php if($result->name): ?> display: none;<?php endif; ?>'>
            <?= $result->name; ?>
        </td>
    </tr>
</table>

如果您使用的是模板(例如.phtml文件),这是我的首选。


5:...或将其混在一起(具有三元回声的模板样式)

<table style='text-align: center;'>
    <tr>
        <td style='text-align: center;<?= $result->name ? " display: none;" : ""; ?>'>
            <?= $result->name; ?>
        </td>
    </tr>
</table>


最终,它归结为您最易读和最熟悉的地方。

答案 2 :(得分:1)

您肯定可以!这是使用三元语句的绝好机会。让我解释一下。

三元语句如下:

<?php
$condition = true;
$content = 'Condition is ' . ( ($condition === true) ? 'met' : 'not met' ) . 'and some more text'; 
// Outputs 'Condition is met and some more text' because condition is true
?>

从本质上讲,它使您可以编写内联条件语句。有时它们不是很可读,但是有时它们实际上使周围的代码更具可读性。