Почему я не могу передать переменные во включенный файл в PHP?

Раньше у меня была эта проблема без реального разрешения. Это происходит снова, поэтому я надеюсь, что вам помогут эксперты.

Я устанавливаю переменную на моем index.php на основе массива $ _GET. Поэтому я использую этот код:

$admin = isset($_GET['admin']) ? $_GET['admin'] : "dashboard"; 

Ниже я использую функцию для включения моего макета:

 include_layout("admin_header.php"); 

который вызывает эту функцию:

 function include_layout($template="") { include(SITE_ROOT.DS.'layouts'.DS.$template); } 

Пока, так хорошо, все работает. Но если я попытаюсь повторить переменную $ admin из файла admin_header.php, я ничего не получаю. Это похоже на то, что он не установлен. Я даже тестирую его, используя echo $admin; прямо перед тем, как включать заголовочный файл, и он выводится там, но он не задан с точки зрения файла admin_header.php.

Почему это произойдет? Это как-то связано с использованием функции для включения, а не для ее непосредственного включения? И если так, ПОЧЕМУ это имеет значение?

Related of "Почему я не могу передать переменные во включенный файл в PHP?"