Właściwie są dwie najprostsze wg mnie opcje. Jedna jest taka że tworzysz menu w osobnym pliku php i na każdej podstonie dołączasz go (include lub require). Polega to po prostu na tym że podczas wykonywania kodu strony przez serwer, kod z dołączonego pliku zostanie jakby wklejony do właściwego pliku. Czyli menu będzie na każdej podstronie na której wkleisz dołączenie pliku i wtedy gdy zmienisz coś raz tylko w tym pliku to rzecz jasna że zmieni się wszędzie.
Druga opcja zależy trochę od budowy strony i ilość podstron. Bo możesz stworzyć wszystkie podstrony w jednym pliku i wtedy cały szkielet strony będzie stworzony tylko raz a podmieniała będzie się tylko zawartość w zależności od linku. Można osiągnąć to używając metody GET czyli przekazywania danych w adresie. Masz wtedy np. taki link
mojastrona.pl/index.php?strona=omnie
mojastrona.pl/index.php?strona=kontakt
I w skrypcie PHP odczytasz wartość tej zmiennej w tablicy $_GET o tak
$strona=$_GET['strona'];
if($strona=='omnie')
{
//zawartość strony o mnie
}
else
if($strona=='kontakt')
{
//zawartość strony kontakt
}
To sprawdzi się tylko w przypadku gdy dane podstrony mają w jednym miejscu mieć inną treść. Jeśli miałbyś w tych ifach generować całe podstrony to jest to bez sensu i wtedy lepiej raczej zrobić na osobnych plikach.
Tyle, mam nadzieję że trochę wyjaśniłem ;)