On Fri, 4 Jul 2003, Aric Caley wrote:
> Is there anyway to include a file inside of a function and have the included
> stuff be global?  For instance if I defined a class or a function in that
> include file, I want to be able to use that class outside of the function.
>
> On the documentation for include() a poster commented that it did indeed
> work like this, but my testing indicates it does not.  Everything stays
> local to the function and goes away when the function ends.
>
> Is there a way?

Functions defined in included files are always global.  So I guess it is
just the variable you want to put out into the global symbol table.  It's
a little bit tricky, but you can do it like this:

    function foo($filename) {
        extract($GLOBALS, EXTR_REFS);
        include $filename;
        $arr = array_diff(get_defined_vars(),$GLOBALS);
        foreach($arr as $var=>$val) $GLOBALS[$var] = $val;
    }

-Rasmus

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to