Ho testato lo script e qui da me funziona correttamente.
Eccotene la versione aggiornata, migliorata e commentata.
Codice PHP:
<?php
$pagine 
= array (
                 
'Home' =>'http://www.sanguenellevene.net/index.php'
                 
'Biografia' =>'#'
                 
'Discografia' =>'http://www.sanguenellevene.net/discografia/barabba.php'
                 
'Tour' =>'#'
                 
'forum' =>'http://www.sanguenellevene.net/forum/index.php'
                 ); 
// di quante voci è composto il mio menu??? 
$num count($pagine); 
// inizializzo un contatore 
$i 1
// inizializzo la variabile stringa $out per evitare 
// NOTICE da parte dello script 
$out ""


echo
"<ul>\n"
foreach (
$pagine as $text => $link) { 
/*
controllo che il numero del ciclo sia uguale a quello 
che definisce l'ultimo ITEM di lista da inserire 
uso l'operatore ternario in luogo del solito IF 
*/
($i == $num) ? $style " style=\"border-right: 1px solid #666666\"" $style "" 
/*
controllo che l'indirizzo del link corrisponda a quello della pagina visualizzata 
*/
(basename($_SERVER['PHP_SELF']) == basename($link)) ? $class " class=\"active\"" $class "" 
/*
se l'indirizzo del link corrisponda a quello della pagina visualizzata 
modifico il link e metto il void di JS
*/
(basename($_SERVER['PHP_SELF']) == basename($link)) ? $link "javascript:void(0)" $link $link 
/*
ricorda che il trattino tra JAVA e SCRIPT qui sopra, è messo dal forum
e lo devi correggere (togliendolo) dal tuo script
*/
$out.="\t<li{$style}{$class}><a href=\"$link\">$text</a>\n";


$i++; 

echo 
$out
echo 
"[/list]\n"
?>