Требовать произвольный файл PHP без утечки переменных в область видимости

Возможно ли в PHP требовать произвольного файла без утечки каких-либо переменных из текущей области в пространство имен переменных требуемого файла или загрязнения глобального область видимости переменных?

Я хочу сделать упрощенное создание шаблонов с файлами PHP и ради чистоты меня интересовал, можно ли загрузить файл шаблона без каких-либо переменных в его области действия, кроме предполагаемых.

У меня есть тест, который я хочу пройти. Должна быть возможность потребовать RequiredFile.php и вернуть Успех, без утечек переменных. .

RequiredFile.php:

<?php

print array() === get_defined_vars()
    ? "Success, no leaking variables."
    : "Failed, leaked variables: ".implode(", ",array_keys(get_defined_vars()));

?>

Самое близкое, что я получил, - это использование замыкания, но оно все равно возвращает Неудачные, просочившиеся переменные: _file .

$scope = function( $_file, array $scope_variables ) {
    extract( $scope_variables ); unset( $scope_variables );
    //No way to prevent $_file from leaking since it's used in the require call
    require( $_file );
};
$scope( "RequiredFile.php", array() );

Есть идеи?

25
задан Kendall Hopkins 9 November 2011 в 01:34
поделиться