1. Если переменная объявлена вначале файла то видна везде (внутри всех функций) то есть это глобальная переменная.
Пример...
2. Если переменная объявлена внутри функции то видна толко внутри этой функции.
Пример...
3. Если переменная объявлена вначале файла и такая же переменная объявлена внутри функции то переменная внутри функции НЕ ВЛИЯЕТ на переменную вначале файла (это разные переменные).
Пример...
4. Если объявлена переменная в любом месте и такая же переменная объявлена чуть ниже внутренний блок тогда переменная внутренний блок ВЛИЯЕТ на переменную выше (это одна и таже переменная).
Пример...