4

有没有办法使用这种替代语法?

<div class="lines-rates">
<?php foreach($info as $k => $v){ echo : ?>
<div><span>{$k}</span>{$v}</div><?php ; } ?>
</div><!-- #lines -->

我是说:

<?php echo : ?><p>this is your {$username} And this html code could be more than one line and sure other html elements also</p><?php endecho; ?>

所以我们可以很容易地看到html代码。

我想在 PHP 中有 html。不是 html 中的 PHP。

<?php echo '<p>this is your '.$username.' And this html code could be more than one line and sure other html elements also</p>'; ?> 

这绝对不是我想要的方式。

我正在使用

<?php if($info) : ?>
<div class="lines-rates">
<?php foreach($info as $k => $v){ echo "<div><span>{$k}</span>{$v}</div>"; } ?>
</div><!-- #lines -->
<?php endif; ?>

我不想在 php 中使用 html .. 喜欢

<?php echo "<div><span>{$k}</span>{$v}</div>";?>

下一行也是可能的,但这对我来说太冗长了——不是吗?为什么我必须写<?php echo $k; ?>来回显简单变量?

<?php $if($info) : ?>
<h2>Weekly Charter Rates </h2>
<div class="lines-rates">
<?php foreach($info as $k => $v) : ?> 
<div><span><?php echo $k; ?></span><?php echo $k; ?></div>
<?php endforeach; ?>
</div><!-- #lines -->
<?php endif; ?>

我需要尽可能干净和纯粹的代码。

这种类型的写作再次失败。

<?php foreach($info as $k => $v) : echo <<<EOT ?>
<p>this is your {$username}</p>
...
some more html
..<div><span>$k</span>$k</div>
<?php EOT; ?> 
<?php endforeach; ?>

这几乎是最好的方式。

4

6 回答 6

3

用这个:

<div class="lines-rates">
<?php foreach($info as $k => $v){?>
  <div><span><?php echo $k; ?></span><?php echo $v; ?></div>
<?php } ?>
</div>

如果您只使用 PHP 的两个变量,则无需回显整行,只需回显这些变量。

于 2013-08-22T11:48:22.003 回答
1

您可以使用Heredoc 语法

echo <<<EOT
<p>this is your {$username}</p>
...
some more html
..
EOT;

更新

第二个“EOT”行中不得有其他内容。引用我给出的链接:

需要注意的是,带有结束标识符的行不能包含其他字符,可能除了分号 (;)。

更新 2

改变

<?php EOT; ?> 

<?php 
EOT; 
?>

不要标识第二行


于 2013-08-22T11:43:53.173 回答
1

您可以使用模板语言,例如Twig。示例语法:

<ul id="navigation">
    {% for item in navigation %}
        <li><a href="{{ item.href }}">{{ item.caption }}</a></li>
    {% endfor %}
</ul>
于 2013-08-22T11:44:36.440 回答
1

那这个呢

<?php echo '<p>this is your '.$username.' And this html code could be more than one line and sure other html elements also</p>'; ?>
于 2013-08-22T11:45:21.593 回答
0

你也可以使用 nowdoc

    echo <<<'END_OF_HTML'
        $hello this is {$a->test}
END_OF_HTML;

输出:

$hello 这是 {$a->test}

于 2013-08-22T11:46:35.443 回答
0

如果你真的很喜欢冒险,你可以选择启用短标签,但是 Heredoc 和上面提到的 Twig 等模板引擎都是一个更好的主意。

<p>this is your <?=$username;?> And this html code could be more than one line and sure other html elements also</p>
于 2013-08-22T11:48:15.677 回答