Ho trovato questo codice in giro:

codice:
<?php
class includeWrapper{
    public static $paths = array();
    public static function includeOnce($path_file){
        if(!isset(self::$paths[$path_file])){
            include($path_file);
            self::$paths[$path_file] = true;
        }
    }
    public static function requireOnce($path_file){
        if(!isset(self::$paths[$path_file])){
            require($path_file);
            self::$paths[$path_file] = true;
        }
    }
    // just for testing
    public static function getPaths(){
        return self::$paths;
    }
}
?>
che va utilizzato ad esempio cosi':
codice:
<?php
require("includeWrapper.class.php");
includeWrapper::requireOnce("test.php");
?>
L'idea e' molto interessante e questa "versione" del codice e' sicuramente piu' veloce, soprattutto per me che faccio un grande uso di include e require. Ha pero' un pessimo bug che praticamente lo rende inutile: le variabili e le classi eventualmente definite negli include file per ovvie ragioni di scope nn risultano definite fuori dalla funzione wrapper

qualche idea su come si possa risolvere il problema?