也许我只是累了,或者只是感到困惑,但我在处理一些require_once()
电话时遇到了一个奇怪的问题ob_start()
。
基本结构:
Main.php 的顶部:
require_once 'config.php'; // includes variable $A = "bar", and Function "foo"
function getPage(){
ob_start();
include 'some_file.php';
$html = ob_get_clean();
echo $html;
die();
}
getPage();
some_file.php
require_once 'config.php'; // includes same config file
var_dump($A); // NULL
foo(); // runs, returns correct value
配置文件
$A = 'bar';
function foo(){
return "FOO";
}
那么,这里有什么问题?我在缓冲输出时包含一个文件。所需的文件config.php
包含一个变量和函数。在缓冲区期间包含some_file.php
时,该变量$A
显然是不可设置/可访问的。函数可以foo
执行。