Я немного сбит с толку формулировкой вашего вопроса.Когда вы говорите: «Я должен работать в двух разных файлах».Вы имеете в виду, что у вас есть «две» функции?
Если у вас две функции, пытающиеся использовать переменную $ array, вам нужно будет вызвать global $array;
в обеих функциях.
причина в том, что global
немного вводит в заблуждение.Все, что он на самом деле делает, - назначает ссылку на член $_GLOBALS
на переменную в локальной области, имя которой совпадает с именем индекса $ _GLOBALS.Другими словами, если вы делаете что-то вроде этого:
global $variable;
, то же самое можно сказать и так:
$variable =& $_GLOBALS['variable']; (assign by reference)
Фактическая переменная $variable
все еще находится в области действия функции.на уровне, это просто ссылка на глобальную переменную.
Смысл этого в том, что если вы не определяете global $variable
в каждой функции, вы просто создаете новую переменную внутриобъем этой функции.Когда функция завершается, переменная сбрасывается, и любые изменения, сделанные в ней внутри функции, теряются.
С учетом всего сказанного, глобальные переменные все еще имеют тенденцию быть плохой идеей.Намного понятнее, если вы просто поддерживаете локальную переменную и при необходимости передаете ее в качестве параметра другим функциям.