Ech... z czego ty się uczysz tego PHP? Przecież jedną z podstawowych rzeczy, jakie powinieneś wiedzieć, jest to, że w PHP można ustawić różne poziomy raportowania błędów. Jednym z rodzajów komunikatów jest m.in. E_NOTICE, które informują np. o odwołaniu do nieistniejącej zmiennej, co potencjalnie może być wynikiem błędu. KAŻDA zmienna, element tablicy, pole obiektu itd. powinno być zainicjowane jakąś początkową wartością przed pierwszym użyciem. Wtedy będziesz mieć pewność, że niezależnie od konfiguracji takie komunikaty nie będą się pokazywać.
A tak w ogóle to Twój kod jest hmmm... dziwny. Domyślam się dobrze, co chciałeś osiągnąć, ale kombinujesz zupełnie niepotrzebnie. Używasz niezainicjowanych tablic i jeszcze na dodatek używasz za indeksy wartości logiczne, podczas gdy później odwołujesz się do indeksów tekstowych. Jak to miało działać? Przecież można znacznie prościej i czytelniej:
Kod
if(!isset($_GET['m']))
{
$_GET['m'] = null; // inicjujemy domyslna wartoscia.
}
foreach($menu as $klucz => $nazwa)
{
echo '<a href="index.php?m='.$klucz.'&s='.$i.'" '.($klucz == $_GET['m'] ? 'style="background:#FFFFCC; color:black; font-weight:bold;"' : '').'>'.$dana.'</a>';
}