Возможно ли в PHP require
произвольный файл без утечки каких-либо переменных из текущей области в требуемое пространство имен переменных файлов или загрязнение области глобальных переменных?
Я хочу делать легкие шаблоны с PHP файлами и задавался вопросом, насколько это возможно, если бы можно было загрузить файл шаблона без каких-либо переменных в его области, кроме предполагаемых.
У меня есть тест, который я бы хотел решить. Должно потребоваться RequiredFile.php
и вернуть его Success, no leaking variables.
.
RequiredFile.php:
<?php
print array() === get_defined_vars()
? "Success, no leaking variables."
: "Failed, leaked variables: ".implode(", ",array_keys(get_defined_vars()));
?>
Самое близкое, что я получил, - это использовать закрытие, но оно все равно возвращает Failed, leaked variables: _file
.
$scope = function( $_file, array $scope_variables ) {
extract( $scope_variables ); unset( $scope_variables );
//No way to prevent $_file from leaking since it used in the require call
require( $_file );
};
$scope( "RequiredFile.php", array() );
Любые идеи?