Задать вопрос

Почему не в области видимости переменные в функциях?

Есть 3 файла. Файл-обработчик, файл-страница и файл с функциями. Файл с функциями подключается через команду include так же как и файл-страница. В файле-странице есть переменные которым присвоили нейкое значение. И в файле с функциями есть функция которая использует данные этих переменных. Эта функция вызывается в файле-странице. Но вот проблема, при вызове этой функции эти переменные пусты, т. е не в области видимости... Почему? Но если вызвать эту переменную в самом файле-странице, то переменная выведится правильно.
Вот примерный код этих файлов:
Файл-обработчик:
<?
//Какой-то код..
$user = array('first_name'=>'Имя','last_name'=>'Фамилия');
//Какой-то код..
include 'fun.php';
include 'page.php';
?>

Код файла c функциями:
<?
function endFile(){
	//Какой-то код..
	echo $user['first_name'].' '.$user['last_name']; //Выведет только пробел
	//Какой-то код..
}
?>

Код файла-страницы:
<?
//Какой-то код..
endFile();
echo '/'.$user['first_name'].' '.$user['last_name']; //Выведет 'Имя Фамилия'
?>
  • Вопрос задан
  • 156 просмотров
Подписаться 1 Оценить Комментировать
Решения вопроса 1
index0h
@index0h
PHP, Golang. https://github.com/index0h
php.net/manual/ru/language.variables.scope.php

Но сразу предупрежу: глобальные переменные - это ЗЛО, не используйте их. Передавайте данные в виде аргумента в функцию.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы