PHP:有可能将HTML嵌入到三元运算符的中间吗?

PHP:有可能将HTML嵌入到三元运算符的中间吗?,php,html,ternary-operator,embedded-language,Php,Html,Ternary Operator,Embedded Language,例如,我可以做如下的事情吗 <? $foobar = 1; $foobar==0 ? ?> <span>html goes here.</span> <? : ?> <span>something else.</span> <? ; ?> 这里是html。 还有别的。 那密码不行。所以我猜这是不可能的,或者是吗?我建议使用开关 范例 <?php switch($foobar) {

例如,我可以做如下的事情吗

<? $foobar = 1;
$foobar==0 ? ?>
   <span>html goes here.</span>
<? : ?>
   <span>something else.</span>
<? ; ?>

这里是html。
还有别的。

那密码不行。所以我猜这是不可能的,或者是吗?

我建议使用
开关

范例

<?php
switch($foobar) {
    case 0:
         $html = '<span>html goes here.</span>';
    break;

    default:
    case 1:
         $html = '<span>something else.</span>';
    break;
}

echo $html;

您不能像那样嵌入HTML,因为您过早地终止了三元表达式,导致了一个解析错误

替代的if-else构造更具可读性。对于额外的几个字符,您可以获得更容易理解的代码块:

<?php if ($foobar == 0) : ?>
    <span>html goes here.</span>
<?php else: ?>
    <span>something else.</span>
<?php endif; ?>

这里是html。
还有别的。

你也可以使用大括号语法,但我不喜欢看到我的代码周围有游离的、未标记的
}
s。我认为像这样使用三元运算符是没有意义的,我的意思是,你为此花费了6行代码,因此不再紧凑

我建议你把它改写成“如果/否则”

<? $foobar = 0;
if($foobar==0) { ?>
   <span>html goes here.</span>
<? } else { ?>
   <span>something else.</span>
<? } ?>

这里是html。
还有别的。
致以最良好的祝愿


使用字符串进行替换

<?php

$x = 10;
?>
<p>Some html</p>

<?= $x == 10 ? '<p>true</p>' : '<p>false</p>' ?>

<p>Some other html</p>

一些html

其他一些html


我想这会很整洁我认为这本书很难读懂。很好的选择。:)我以前用它来输出变量,但没有像那样使用它。
<?php

$x = 10;
?>
<p>Some html</p>

<?= $x == 10 ? '<p>true</p>' : '<p>false</p>' ?>

<p>Some other html</p>