Php 在没有jquery的情况下加载页面后加载自定义标题类

Php 在没有jquery的情况下加载页面后加载自定义标题类,php,html,css,Php,Html,Css,我有一个自定义类,可以创建我所有的头部html(css/js页面)。在这个类中,我有一个添加特定于元素的js和css页面的方法。例如,我有一个导航类,它创建了一个需要链接特定javascript页面的导航栏。现在,我一直在调用header类中的一个方法,将特定的js页面添加到静态变量中,然后当调用header::generateHeader方法时,它会将正确的js/css页面和输出添加到html中 我的问题是,在调用页面上的其他方法之后,我需要调用generateHeader,否则在Header

我有一个自定义类,可以创建我所有的头部html(css/js页面)。在这个类中,我有一个添加特定于元素的js和css页面的方法。例如,我有一个导航类,它创建了一个需要链接特定javascript页面的导航栏。现在,我一直在调用header类中的一个方法,将特定的js页面添加到静态变量中,然后当调用
header::generateHeader
方法时,它会将正确的js/css页面和输出添加到html中

我的问题是,在调用页面上的其他方法之后,我需要调用
generateHeader
,否则在Header类中不会设置静态变量

有什么新的想法吗?我认为不可能在后面调用generateHeader,因为我需要输出位于页面顶部。我想不惜一切代价避免jquery,并不是说我反对它,我只是不希望整个css依赖于jquery

<html>
  <head>
    <?= Header::generateHeader ?>
  </head>
  <body>
    <?= Navigation::generateNavigation ?>
    <?= SomeOtherClass::someOtherMethod ?>
  </body>
</html>

只需将值保存到变量中,并按所需顺序调用它们即可

<?php
$nav = Navigation::generateNavigation();
$otherClass = SomeOtherClass::someOtherMethod();
$header = Header::generateHeader();
?>
<html>
  <head>
    <?= $header ?>
  </head>
  <body>
    <?= $nav ?>
    <?= $otherClass ?>
  </body>
</html>

因为代码是自上而下运行的,所以不能让它在前一个方法之前调用后一个方法。您可以执行类似于打开输出缓冲并捕获所有输出的操作。然后用占位符替换对generateHeader的调用。然后在脚本的底部,在一切运行完毕后,获取缓冲区,str_用generateHeader的结果替换占位符。模板系统的基本功能。