PHP:是否可以以某种方式将 HTML 嵌入到三元运算符的中间?

发布于 2024-10-17 15:13:04 字数 235 浏览 8 评论 0原文

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

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

该代码将不起作用。所以我猜这是不可能的,或者是吗?

For example, can I do something like the following?

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

That code won't work. So i'm guessing it's not possible, or is it?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

巷子口的你 2024-10-24 15:13:05

我建议使用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>';

I would recommend to use switch.

Example

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

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

echo $html;

But if you still want to do it with ternary operator, do it like this:

echo $foobar == 0 ? '<span>html goes here.</span>' : '<span>something else.</span>';
叫嚣ゝ 2024-10-24 15:13:05

我认为使用这样的三元运算符是没有意义的,我的意思是,您要花费 6 行代码来执行此操作,因此不再紧凑。

我建议您将其重写为 if/else。

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

此致。

哈!

i think is pointless to use the ternary operator like this, i mean, you are expending 6 lines of code for doing it so is not compact anymore.

I would recomend you to rewrite it as as if/else.

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

Best regards.

HTH!

写下不归期 2024-10-24 15:13:04

您不能像这样嵌入 HTML,因为您会过早终止三元表达式,从而导致解析错误。

另一种 if-else 结构更具可读性。对于额外的几个字符,您将获得更容易理解的代码块:

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

您也可以使用大括号语法,但我不喜欢在代码周围看到杂散的、未标记的 }

You cannot embed HTML like that, because you are terminating the ternary expression prematurely, causing a parse error.

The alternative if-else construct is much more readable. For an extra few characters you get a much more easily-understood block of code:

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

You can use the curly-brace syntax too but I don't like seeing stray, unlabeled }s around my code.

以往的大感动 2024-10-24 15:13:04

使用字符串的替代方案。

<?php

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

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

<p>Some other html</p>

Alternative using strings.

<?php

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

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

<p>Some other html</p>
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文