如何通过PHP函数包含/需要文件?

时间:2013-03-29 00:29:57

标签: php oop class function

这很难解释,但请光临我,

我有2个文件, class.inc.php和index.php

class.inc.php包含Myclass和少数函数,index.php文件从class.inc.php吐出函数

现在我需要创建一个包含/需要文件的函数,该函数实际上应该要求index.php中的文件不在class.inc.php中。

是的我知道我可以将我的文件放在一个函数中并以这种方式调用它,但我们必须将它保存在文件中,因为将来会有一些MVC覆盖。如果可能的话,我不想直接在index.php中包含文件。有没有办法做到这一点?

在我的index.php中我应该能够做到这一点

Myclass::include(PARAMS);

并且应该包含位于其他地方的文件名params.php。

我在class.inc.php

中尝试过这个
abstract class Myclass {
    static function load($filename){
        require_once $filename;
    }
}

并在

的index.php

Myclass::include(PARAMS);

但是params.php的变量都没有在index.php中可见,因为它们似乎在class.inc.php中

我希望你理解我的意思。

1 个答案:

答案 0 :(得分:1)

includerequire和朋友基本上就像您已将文件内容复制并粘贴到该位置一样。因此,如果您在函数中运行它们,那么任何“裸”变量(如果您自己运行该文件将是全局变量)将是该函数的本地变量。

一般来说,现代PHP代码中的答案就是不使用任何全局变量 - 文件应该只包含函数,或者更好的是,只包含名称空间和类,所有变量都包含在那些中。

但是,如果确实需要全局变量,则可以在include函数中或所包含文件的顶部使用global关键字。

因此,例如,如果您的包含文件定义了需要在别处访问的变量$config,则可以在文件顶部写global $config;以将其推出您所在的任何范围当你include / require时。