Включить имеет область видимости строки, из которой он вызван.
Если вы не хотите создавать новые глобальные переменные, вы можете обернуть include()
функцией:
function includeHeader($title) {
include("inc/header.php");
}
$title
будет определяться во включенном коде всякий раз, когда вы вызываете includeHeader
со значением, например includeHeader('My Fancy Title')
.
Если вы хотите передать более одной переменной, вы всегда можете передать массив вместо строки.
Давайте создадим универсальную функцию:
function includeFile($file, $variables) {
include($file);
}
Voila!
Использование extract делает его еще более аккуратным:
function includeFileWithVariables($fileName, $variables) {
extract($variables);
include($fileName);
}
Теперь вы можете сделать:
includeFileWithVariables("header.php", array(
'keywords'=> "Potato, Tomato, Toothpaste",
'title'=> "Hello World"
));
Зная, что это приведет к тому, что переменные $keywords
и $title
будут определены в объеме включенного кода.