我想做这样的事情:
<?php if ($somecondition) : ?>
<p style='font-size: 18px;color:#DF5F5F'><strong>An error occurred!</strong></p>
<!-- some more html -->
<?php else:
chop($xpath);
$alot;
$ofphp;
?>
<ul>
<li>More</li>
<li>HTML</li>
<li>With: <?php echo strtoupper($vaiables); ?></li>
</ul>
<?php
if ($anothercondition) {
if ($andanother) {
echo '<p>Some HTML</p>';
}
else {
echo '<p>Some other HTML</p>';
}
}
endif;
?>
正如你所看到的,我希望整个被一个条件$somecondition
和它的另一个替代条件包围。每一个里面都有HTML输出和PHP的空间。但是,我不想对每个HTML元素使用echo(正如您在第二行中看到的)。
是否可以混合if ($condition):
和if ($condition() {}
,以及如何混合?如何在不必在$anothercondition
块中使用echo的情况下正确构建上述代码?
混合使用大括号和冒号样式的控制流语句没有问题。唯一的要求是,如果您对if
使用特定的样式,则必须对其相应的else
和elseif
子句使用相同的样式,即您不能编写
if ($cond):
// code
else {
// other code
}
endif;
但是,当您嵌套它们时,您可以在每个级别使用不同的样式。
你的意思是这样的吗:
<?php
if ($somecondition) {
?>
html code
<?php
} else {
?>
html code
<?php
if ($anothercondition) {
?>
another html code
<?php
}
}
为什么不一致地使用括号?在我看来,也给出了更清晰的代码:
<?php if ($somecondition) { ?>
<p style='font-size: 18px;color:#DF5F5F'><strong>An error occurred!</strong></p>
<!-- some more html -->
<?php } else {
chop($xpath);
$alot;
$ofphp;
?>
<ul>
<li>More</li>
<li>HTML</li>
<li>With: <?php echo strtoupper($vaiables); ?></li>
</ul>
<?php }
if ($anothercondition) {
if ($andanother) {
echo '<p>Some HTML</p>';
}
else {
echo '<p>Some other HTML</p>';
}
}
?>