在HTML中使用PHP语法的最佳实践是什么?

在HTML中使用PHP语法的最佳实践是什么?,php,html,Php,Html,我想知道在HTML中使用PHP的最佳实践是什么?你会用短标签做回音吗?你会在if/else语句中使用花括号吗 请不要评论使用模板系统或者我应该使用MVC。我正在做一个项目,我被要求更新和结束 下面是我编写的一段代码: <div class="left"> <ul> <?php foreach ($data['vars']['groupslist'][1] as $key => $group): ?> <li&

我想知道在HTML中使用PHP的最佳实践是什么?你会用短标签做回音吗?你会在if/else语句中使用花括号吗

请不要评论使用模板系统或者我应该使用MVC。我正在做一个项目,我被要求更新和结束

下面是我编写的一段代码:

<div class="left">
    <ul>
        <?php foreach ($data['vars']['groupslist'][1] as $key => $group): ?>
        <li><?php echo $group->title; ?></li>
        <?php endforeach; ?>
    </ul>
</div>

注意,我使用了
endforeach。你会怎么做


谢谢

我建议你做点像



Shai.

我更喜欢你为这个案子所做的,而不是其他选择。虽然我会使用
,但我的代码看起来像这样:

<div class="left"> 
    <ul> 
        <? foreach ($data['vars']['groupslist'][1] as $group) { ?> 
           <li><?=$group->title?></li> 
        <? } ?> 
    </ul> 
</div> 

注意,我使用了:和endforeach;你会怎么做


就这样。在混合了PHP和HTML的情况下,很难找出哪个{与哪个}。endif和endforeach更具描述性。

在PHP模板中,我也是这样做的(
foreach
/
endforeach

但实际上,说到语法,这只是偏好的问题。因此,没有“最佳做法”。随心所欲,更重要的是坚持下去

我相信这两种方法都有很好的理由

你会用短标签做回音吗

当然可以。
这正是短标签的用途

你会在if/else语句中使用花括号吗

视情况而定。
虽然替代语法看起来很简洁,但我不知道有哪个编辑器可以突出显示它,所以,为了突出显示,我正在慢慢地回到卷发


无论如何,您可以保存自己键入的
代码。

我会像您一样做。如果将代码迁移到禁用了短标记的服务器,则使用短标记可能会导致问题。我个人觉得它很难阅读,但这可能是因为我没有使用它


使用
foreach
块不仅使源代码更易于阅读,而且HTML也更易于格式化。

我认为这是一个品味问题;)首先,我不会使用short_open_标签来解决兼容性问题,其次,我不会使用short_open_标签来保护我的眼睛(在查找大量内容时,这些内容往往会相互交叉,这不仅是一个品味问题,这个问题也已经得到了回答,就像or和其他许多问题一样,请使用搜索。“请不要对使用模板系统发表评论”-您正在使用PHP内置模板系统。除了不使用任何短标签外,我也会这样做。+1表示缩进(4个字符)因为这是一个很好的实践,可以帮助您了解循环的开始和结束,以及循环本身内部执行的内容。我还注意到
只是一个缩写,它使您的代码更具可读性。特别是当涉及到很多变量时。谢谢@Baszz,我以前没有看到过这一点,我同意它更具可读性写起来更容易,也更快。即使你不需要,
$key
变量,你也会分配它吗?不,我不会…我忽略了这一点。我只是从示例中复制了它。现在删除了它。对这个主题有很好的补充。尤其是“坚持它”part.this是丑陋的,一般来说是不可用的,特别是在这个问题上是离题的。这个离题到底是怎么回事?他问人们会怎么做,我刚刚分享了我在这个特定条件下会怎么做。不可用?这是一个相当夸张的说法。他问的是如何在HTML中使用PHP,而不是在PHP中使用HTML。你不知道这个问题是什么询问并了解好的代码外观我希望开发人员不需要显示“谁有更大的球”。你可以检查许多使用这种方法的大型开源系统。这不是重点,因为它可能是更大HTML文档的一部分,而这部分只处理
  • 。每个人和他的方法,我不认为有任何“坏做法”在这里,你的评论充满了“想展示谁是男人”的味道,或者诸如此类。祝你有一个美好的一周:)每一个
    “只是
  • 最终都会发展成
  • 。如果你要使用一个模板-使用一个模板。不要“因为你可以”而破坏它。许多糟糕的开源系统都是这样膨胀的。这不是关于球,而是关于经验。IDE支持对于
    {}
    更好,它们甚至可以跳到块的末尾。如果您使用
    @hakre,您的IDE是否无法跳转到与endif相关的if()?我的可以(Netbeans)。然而,我通常使用缩进来创建视觉关系,当您脱离HTML时,这种关系会变得更加困难。你对压痕的看法是对的,它经常让我感到厌烦。