Sto utilizzando questa funzione

Codice PHP:
function category_list($category_parent_id $visualizzazione $level $id_cat "" ) { 
    
//mi connetto a MySQL
    
include_once ("../connessione.php");
    
//Dichiaro la variabile
    
static $cats
    
//Evito di ripetere la query
    
if ( ! is_array$cats ) ) { 
        
$sql  ="SELECT * FROM ".$_CONFIG['table_categorie']; 
        
$res  mysql_query$sql ); 
        
$cats = array(); 
        
//salvo i valori in un array
        
while ( $cat mysql_fetch_assoc$res ) ) { 
            
$cats[] = $cat
        } 
    } 
    
// creo l'array
    
$list_items = array(); 
    if (
$visualizzazione==0){
        
//Foreach array
        
foreach ( $cats as $cat ) { 
            
// se non corrispondono va avanti 
            
if ( ( int ) $cat['id_parent'] !== ( int ) $category_parent_id ) { 
                continue; 
            } 
            
// apro la lista
            
$list_items[] = '[*]'
            
// creo i link della categoria 
            
$list_items[] = '<a href="#' $cat['id_cat'] . '">'
            
$list_items[] = $cat['categoria']; 
            
$list_items[] = '</a>'
            
// richiamo la funzione con il nuovo id 
            
$list_items[] = category_list$cat['id_cat'] ); 
            
// chiudo la lista
            
$list_items[] = ''
        } 
    }elseif(
$visualizzazione==1){

        
//Foreach array
        
foreach ( $cats as $cat ) { 
            
//indentazione
            
$indentazione=str_repeat('&mdash;&mdash;',$level);
            
// se non corrispondono va avanti 
            
if ( ( int ) $cat['id_parent'] !== ( int ) $category_parent_id ) { 
                continue; 
            } 
            
// creo i link della categoria 
                //mostro selected se corrisponde all'id passato come parametro
            
if ($id_cat==$cat['id_cat']){
                
$list_items[] = '<option selected=\"selected\" value="'.$cat['categoria'].'">'
            }else{
                
$list_items[] = '<option value="'.$cat['categoria'].'">'
            }
            
$list_items[] = $indentazione."".$cat['categoria']; 
            
$list_items[] = '</option>'
            
// richiamo la funzione con il nuovo id 
            
$list_items[] = category_list$cat['id_cat'], $level+1$id_cat);
        } 
    }elseif(
$visualizzazione==2){
        
//Foreach array
        
foreach ( $cats as $cat ) { 
            
//indentazione
            
$indentazione=str_repeat('&mdash;&mdash;',$level);
            
// se non corrispondono va avanti 
            
if ( ( int ) $cat['id_parent'] !== ( int ) $category_parent_id ) { 
                continue; 
            } 
            
// creo i link della categoria 
                //mostro selected se corrisponde all'id passato come parametro
            
if ($id_cat==$cat['id_cat']){
                
$list_items[] = '<option selected=\"selected\" value="'.$cat['id_cat'].'">'
            }else{
                
$list_items[] = '<option value="'.$cat['id_cat'].'">'
            } 
            
$list_items[] = $indentazione."".$cat['categoria']; 
            
$list_items[] = '</option>'
            
// richiamo la funzione con il nuovo id 
            
$list_items[] = category_list$cat['id_cat'], $level+1$id_cat);
        } 
    }
    
// converto in stringa 
    
$list_items implode''$list_items ); 
    
// se la lista è vuota non la mostro 
    
if ( '' == trim$list_items ) ) { 
        return 
''
    } 
    
// altrimenti mostro la lista di link
        #echo $list_items;
    
return $list_items


Il problema è che se la chiamo in questo modo va tutto bene:
Codice PHP:
echo "<select>".category_list(0,1,0,"")."</select>"
Mentre non visualizza nulla se la richiamo dentro ad un' altra funzione, ad esempio
Codice PHP:
function prova(){
   .....
   .....
   echo 
"<select>".category_list(0,1,0,"")."</select>";
   .....
   .....