0

我正在用 php 处理来自数据库的信息,并打算在 html 代码块中设置值:

$var = [function to grab multiple rows from database]($args);
foreach ($var as $row) {
echo "<p>$row[username]</p>";
}

问题是 echo 语句中的代码不是简单的<p></p>,而是大约 50 行 html。是否可以在 foreach 循环中间关闭 php 标签,如下所示:

    $var = [function to grab multiple rows from database]($args);
    foreach ($var as $row) {
?>
<p> <?php echo "$row[username]";?> </p>
<?php
    }
?>

如果没有,你有什么建议?

4

4 回答 4

2

的,你可以这样做......

<?php
 foreach ($var as $row) {
?>
<p> <?php echo "$row[username]";?> </p>
<!--you can write any html you like-->
<?php
    }
?>
于 2012-09-13T17:46:59.010 回答
1

你也可以使用这个注解:

<?php foreach ($var as $row): ?>
    <p> <?=$row[username] ?> </p>
<?php endforeach; ?>

PD:您不需要在回声中用引号包裹单个 var

于 2012-09-13T17:53:31.330 回答
1

我个人推荐以下样式(根据预期的安装环境,短标签的使用是可选的。见下文)

<? foreach ($var as $row) : ?>
    <p><?= $row[username] ?></p>
<? endforeach ?>

<?仅当您在运行环境中完全控制 PHP 配置时才建议使用(例如,您自己运行软件的唯一安装)。

如果您要广泛分发您的软件(如 wordpress 等)并且需要绝对兼容性(例如,您的代码同时兼容 PHP 4 和 PHP 5,并且您的代码在各种 $5/月的共享帐户上运行等)然后强烈建议避免使用短标签。

<?=自 PHP 5.4 起得到普遍支持——但同样,如果您有用户在他们自己的服务器上安装您的代码,您不能指望他们有 PHP 5.4 可用。

于 2012-09-13T17:55:45.420 回答
0

是的,这是可能的。您提供的代码示例将起作用。

PHP 甚至为我们提供了替代语法来提高可读性:

    $var = [function to grab multiple rows from database]($args);
    foreach ($var as $row) :
?>
<p> <?php echo "$row[username]";?> </p>
<?php
    endforeach;
?>
于 2012-09-14T05:52:05.090 回答