将值从调用PHP脚本传递到被调用的PHP脚本

将值从调用PHP脚本传递到被调用的PHP脚本,php,Php,我有一个页面生成器类: <?php class PageBuilderService { public function getHeader() { // return file_get_contents('template/header.html'); include 'template/header.php'; } public function getFooter() { return file_get_con

我有一个页面生成器类:

<?php
class PageBuilderService {
    public function getHeader() {
        // return file_get_contents('template/header.html');
        include 'template/header.php';
    }

    public function getFooter() {
        return file_get_contents('template/footer.html');
    }
}
?>
然后,我要调用的页眉的位置:

$page_builder->getHeader();
等等

但是我想添加一个scripts函数,它将拉入一个scripts.php文件,该文件将通过传递给它的脚本文件名列表运行,以便在页面上显示标记

Scipts php文件:

<?php
    $page_builder = new PageBuilderService();

    echo $page_builder::createScriptTags($listOfScripts);
?>
将$listofscript从PHP页面获取到脚本PHP文件的最佳方法是什么

像$u GLOBAL[]这样的东西是最好的方式吗

结果可能是:

$page_builder->getScripts(); // and some way of getting a list of scripts to the script page
理想情况下,我希望:

$scriptsToInclude = array("neededJsFile.js", "someOtherJs.js");
echo $page_builder->getScripts($scriptsToInclude);
但显然这取决于什么是可能的。

那么:

class PageBuilderService {
    private $aScripts = array();        

    public function addScript($cScript) {
        $this->aScripts[$cScript] = true;
    }

    public static function createScriptTags() {
        $scriptHtml = "";
        foreach ($this->aScripts as $script) {
            // some html building
        }

        return $scriptHtml;
    }
}

通过这种方式,您可以根据代码动态添加不同数量的脚本,但是当您调用createScriptTags时,它们都将被注入。。。还是我遗漏了真正的问题?

就像@DragonYen所说的,在脚本a中设置一个变量,然后调用脚本b并接受所述变量。因此,我将创建一个脚本数组,其中包括

$scriptsToInclude = array("script1.js", "script2.js");
然后调用脚本php

echo $page_builder->getScripts();
然后在脚本php中,检查脚本的$scriptsToInclude变量,如果有,则进行构建

if (!empty($scriptsToInclude) && count($scriptsToInclude) > 0) {
   PageBulderService::createScriptTags($scriptsToInclude);
}

您将在哪里包含脚本?在头部?最好在HTML页面的底部!不要返回您的值。将它们保存在可以操作的静态变量中。就你目前的设计而言,我认为你没有太多的灵活性。你能扩展一下吗?我认为你的理想设计没有问题,我想。。。但是,当您在php文件中填充$aScripts时,一旦您访问scripts.php文件,它肯定会丢失?@No1_Melman scripts.php中的whats?在一个类方法中包含一个php文件是很奇怪的,除非它只是模板,否则我会直接将代码添加到该方法中。。。对不起,现在我明白你的问题了。当您访问scripts.php文件时,您会想知道$page_builder的范围我只是用一个简单的1.php和2.php在1.php中设置了一个var,并在2.php中打印了它。它确实有效。然而,我必须同意User574632的观点,我个人喜欢html助手类是静态方法的简单集合。如果它们需要成为实例对象,那么它们可能设计得很糟糕,并且正在做其他地方应该做的事情,例如控制器或应用程序model@user574632它只用于模板制作。显然,如果头文件更改了位置,那么我不想更新40多个文件:
echo $page_builder->getScripts();
if (!empty($scriptsToInclude) && count($scriptsToInclude) > 0) {
   PageBulderService::createScriptTags($scriptsToInclude);
}