Глобальные и локальные переменные в процедурном стиле. Почему не работает?
так откуда им быть в getMenu  то?
php.net/manual/ru/language.variables.scope.php
Потому что это разные области видимости, подробнее здесь
Можно либо так$phone = 79999999999;
$getPhone = function () use ($phone) {
 return $phone;
};

echo $getPhone();
Либо так: function getPhone($phone) {
    return $phone;
}
echo getPhone($phone);
Ну или так: function getPhone() {
    global $phone;
    return $phone;
}