PHP良好实践-Echo使用

PHP良好实践-Echo使用,php,echo,Php,Echo,我已经用c++/c/python编程很多年了,但从来没有用PHP做过一个项目,我很快就会做 1-我发现使用echo有点烦人,尤其是在打印长内容时。例如,如果我有一个函数想要echo网站的冗余部分,例如标题或导航菜单,那么哪种方法更好 <?php function PrintHeader() { [some php stuff, mysql queries, etc] ?> some HTML code more HTML cod

我已经用c++/c/python编程很多年了,但从来没有用PHP做过一个项目,我很快就会做

1-我发现使用
echo
有点烦人,尤其是在打印长内容时。例如,如果我有一个函数想要
echo
网站的冗余部分,例如标题或导航菜单,那么哪种方法更好

<?php
    function PrintHeader() {
        [some php stuff, mysql queries, etc]
?>
        some HTML code
        more HTML code
<?php
        [some closing php stuff]
    }
?>

一些HTML代码
更多HTML代码
它比我的好吗

<?php
    function PrintHeader() {
        [some php stuff, mysql queries, etc]

        echo 'some HTML code'
        echo 'more HTML code'

        [some closing php stuff]
    }
?>

我发现第一种方法对我来说比较简单,因为您可以更轻松地修改HTML代码,而无需使用
echo
s。我对它进行了测试,它是有效的,但这是一个好方法吗?它有效吗

2-使用函数来回送网站的冗余部分,而不是复制/粘贴所有PHP文件中的冗余代码,这被认为是一种良好的编程实践吗


有些人可能会觉得这些问题很明显,但我对PHP中的代码管理没有太多经验。我总是喜欢尽可能减少代码冗余;它更易于维护。

首先,现在人们经常使用模板文件,这些模板文件后来由PHP解析。通常使用模板语言,例如Twig

  • 在我看来,它更符合用户的偏好,但我确实更喜欢第1个变体,因为它更具可读性:)

  • 您应该明确地将网站的多余部分放入模板中,并在需要时将其包括在内:)


  • 传统上,这种事情是在PHP中通过“需要”一个包含所需内容的文件来实现的。e、 g

    header.php:

    <div>some html</div>
    
    一些html
    
    您的主文件:

    <?php
    require 'header.php';
    ?>
    
    
    

    这样就不需要在PHP中嵌入HTML了。然而,更现代的方法是使用模板语言,它允许您在PHP代码之外完全容纳HTML以及简单的显示逻辑(如分支和循环)。看看这两种方法的更多建议。我强烈建议您阅读phptherightway.com的所有内容,事实上,这并不需要很长时间,而且可能会回答您可能遇到的许多其他问题。

    所有这些都是有效的方法,取决于您对什么感到满意。另外,请看
    哦,抱歉,刚刚编辑过。最佳做法是将PHP与HTML分开。因此有模板引擎。想象一个由前端和后端开发人员组成的团队。对于前端开发人员来说,后端应该无关紧要,他们应该只关心可以使用的html文件。他们可能甚至不知道PHP、Ruby或Python或后端使用的任何东西。他们甚至可能因为一些引用或任何其他原因而破坏功能。我不同意使用模板引擎的建议。使用模板引擎的唯一有效原因是,您不希望在视图中允许可执行php,因为您不信任模板设计器。如果模板设计者必须学习
    foreach
    vs
    %foreach%
    ,他们也必须学习模板语言及其逻辑运算符和函数,这并不重要。如果前面的人不能学会一些常用的php或ruby函数,我就不会雇佣他们,他们根本不适合当时的工作。现在已经不是1998年了,模板引擎只是开销。模板?你看,在某种程度上,我希望我的代码能够在托管环境中运行。我的意思是,这种环境通常允许细枝和模板(模板不支持PHP扩展)吗?模板如何比纯PHP更好?我肯定会告诉自己关于模板的事情,但是从你的话来看,它们带来了什么好处呢?Wlel,通常你的模板中有普通的PHP。如果您使用的是模板系统,您可以访问模板中的变量、过滤器等。例如,模板文件可以是header.html,其中包含头的所有DOM。无论如何,默认情况下PHP中不包含模板系统,您必须下载插件/扩展/模块才能使用它们。你肯定不需要它们,普通的PHP和HTML也一样好。