Здравствуйте!
Сложилась интересная ситуация, имеем что-то вроде небольшого шаблонизатора.
Приведу небольшую вырезку из кода:
class Decor
{
public function draw()
{
ob_start();
$this->loadThemePart('name');
$buffer = ob_get_contents();
ob_end_clean();
...
return $buffer;
}
public function loadThemePart($template_name)
{
if(!isset($some_var)) { $some_var = 'test variable'; }
$expansionFile = '/some/path/to/file.php';
include_once $expansionFile;
include_once $template_name;
}
}
И теперь, если написать вот этот пример в
$expansionFile
:
var_dump($some_var);
function old() {
global $some_var;
var_dump($some_var);
}
то в первом случае выведет
test variable
, а во втором -
NULL
Никак не пойму, почему так происходит?