o meglio... funziona ma solo al suo interno... non capisco come mai...

ho questa funzione

Codice PHP:
function salva_testi($t){
    
$t addslashes(stripslashes($t));
    
$t str_replace("<""&lt;"$t);
    
$t str_replace(">""&gt;"$t); 
    
$t nl2br($t);
    
$t str_replace("[B]""[b]"$t);
    
$t str_replace("[/B]""[/b]"$t);
    
$t str_replace("[list][*]""<ul>[*]"$t);
    
$t str_replace("[/list]""[/list]"$t);
    
$t str_replace("[list=a][*]""[list=1][*]"$t);
    
$t str_replace("[/list=a]""[/list]"$t);
    
$t str_replace("[list=1][*]""[list=1][*]"$t);
    
$t str_replace("[/list=1]""[/list]"$t);
    
$t str_replace("[*]""[*]"$t);
    
$t str_replace("[EMAIL=""<a href=mailto:"$t);
    
$t str_replace("[URL=""<a href="$t);
    
$t str_replace("[/URL]""</a>"$t);
    
$t str_replace("[/EMAIL]""</a>"$t);

che richiamo cosi

Codice PHP:
    salva_testi($testo_it);
    
salva_testi($testo_en); 
però la variabile $testo_it esterna non è formattata correttamente, mentre se stampo dall'interno della funzione è tutto ok... come mai?
sbaglio qualche cazzatina ma non ne vengo a capo