<?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;}
。
谢谢!
答案 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
?>
从本质上讲,它使您可以编写内联条件语句。有时它们不是很可读,但是有时它们实际上使周围的代码更具可读性。