例如,我可以执行以下操作吗?
<? $foobar = 1;
$foobar==0 ? ?>
<span>html goes here.</span>
<? : ?>
<span>something else.</span>
<? ; ?>
那个代码行不通。所以我猜这是不可能的,或者是吗?
例如,我可以执行以下操作吗?
<? $foobar = 1;
$foobar==0 ? ?>
<span>html goes here.</span>
<? : ?>
<span>something else.</span>
<? ; ?>
那个代码行不通。所以我猜这是不可能的,或者是吗?
你不能像那样嵌入 HTML,因为你过早地终止了三元表达式,导致解析错误。
另一种 if-else 结构更具可读性。对于额外的几个字符,您将获得更容易理解的代码块:
<?php if ($foobar == 0) : ?>
<span>html goes here.</span>
<?php else: ?>
<span>something else.</span>
<?php endif; ?>
您也可以使用花括号语法,但我不喜欢}
在我的代码周围看到杂散的、未标记的 s。
我建议使用switch
.
例子
<?php
switch($foobar) {
case 0:
$html = '<span>html goes here.</span>';
break;
default:
case 1:
$html = '<span>something else.</span>';
break;
}
echo $html;
但是,如果您仍然想使用三元运算符,请这样做:
echo $foobar == 0 ? '<span>html goes here.</span>' : '<span>something else.</span>';
我认为像这样使用三元运算符是没有意义的,我的意思是,您为此花费了 6 行代码,因此不再紧凑。
我建议您将其重写为 if/else。
<? $foobar = 0;
if($foobar==0) { ?>
<span>html goes here.</span>
<? } else { ?>
<span>something else.</span>
<? } ?>
最好的祝福。
!
替代使用字符串。
<?php
$x = 10;
?>
<p>Some html</p>
<?= $x == 10 ? '<p>true</p>' : '<p>false</p>' ?>
<p>Some other html</p>