Видимость переменных 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? Возможно ли реализовать как-то добавление файлов с сохранением содержимых переменных через функции? Или остается только использовать костыль в виде добавления файла, в который добавляются другие файлы?


Ответы (0 шт):