Видимость переменных PHP
Столкнулся с проблемой и не очень понимаю, почему так происходит.
у меня есть такая ситуация:
get_template('templates/home/static.php');
function get_template($path) {
require_once($path);
}
и такое:
get_header();
function get_header($title = NULL, $description = NULL, $keywords = NULL) {
require_once('templates/header.php');
get_nav();
}
Эти функции вызываются в одном файле home.php и выглядит эта картина так:
<?php
get_header();
get_template('templates/home/static.php');
get_footer();?>
Вопрос заключается вот в чем: в файле header.php есть переменные, которые нужны в static.php, но когда я реализую это через функции - переменные недоступны. Но стоит мне убрать "красивый вид использования функций" и оставить чистый require, то всё работает.
Почему так происходит? Я разве использую функции не для простой вставки содержимого файла header.php и static.php в home.php? Возможно ли реализовать как-то добавление файлов с сохранением содержимых переменных через функции? Или остается только использовать костыль в виде добавления файла, в который добавляются другие файлы?