我正在尝试使用输出缓冲包含文件,如下所示。但是不能在包含文件的函数内部使用全局变量。
Main.php
function get_include_contents($filename) {
if (is_file($filename)) {
ob_start();
require $filename;
return ob_get_clean();
}
return false;
}
test.php - 包含文件:
include_once 'settings.php'; // defines many global variables like $obj1, $ojb2
// some processing
test();
// some processing
function test() {
global $obj1, $obj2;
// using $obj1
$obj1->function_obj1(); // $obj1 is not defined
}
答案 0 :(得分:2)
首先创建一个类,然后在其中创建函数。例如,让您的文件名为main.php。然后做这个
class main
{
function __construct(){
// define a constructor
}
function xyz($a1, $a2 ....$an){
// perform operations
}
}
现在让另一个文件创建另一个类。我们假设你的文件名是main2.php
require_once 'main.php';
class main2{
private $a1;
function __construct()
{
$this->a1 = new main();
}
function abc()
{
$fun = $this->a1->xyz($a1, $a2 ....$an);
// and now perform operations
}
}
在类结束后,您可以在类结束后立即使用构造函数中使用的相同概念调用函数。