Ho trovato una funzione che in parte risolve la cosa :

Codice PHP:
<?php
function globals(){
    
$vars = array();
    foreach(
$GLOBALS as $k => $v){
        
$vars[] = "$".$k;
    }
    return 
"global ".  join(","$vars).";";
}
function 
foo(){
   eval(
globals()); // just insert this line at the beggining of each function
}

function 
language() {
    global 
$lang;
    if (isset(
$_GET['lang'])) {
           
$lang=$_GET['lang']; 
       }
    
$langFile "../lang/" .$lang.".php";
    if (
file_exists($langFile)) {  
        include(
$langFile);
        
print_r ($menu);
        
print_r ($test);
        }
    else {  
        echo 
"Language Error!"
        }  
    }
?>
<?php 
function test() {
    eval(
globals());
    echo 
'

 Variabile : ' 
$menu[2] . '</p>';
    echo 
'[url="test.php?lang='.$lang.'"]test[/url]';
}
?>
<?php 
function test2() {
    eval(
globals());
    echo 
'

 Variabile : ' 
$menu[4] . '</p>';
    echo 
'[url="index.php?lang='.$lang.'"]test[/url]';
}
?>