Мне нужно включить файлы в функцию, а файлы используют множество переменных, определенных ранее в скрипте. Использование global не является опцией, потому что невозможно сказать, какие переменные будут использоваться во включенных файлах. Только один реальное решение, чтобы сделать все глобальные переменные доступны в функции, что-то вроде:Сделать глобальные переменные доступными для включенного файла в функции
function finc($file)
{
foreach($GLOBALS as $k=>$v)
{
$$k=$v;
}
include $file;
}
, но это не будет хорошо, когда использование большого количества файлов с большим количеством переменных, так есть ли лучший способ сделать Это?
@ user410572: «только один реальное решение, чтобы сделать все глобальные переменные доступны в function ": глобальные переменные уже доступны внутри функции. Вот почему они глобальны. –
Я бы начал с основной причины проблемы: «невозможно сказать, какие переменные будут использоваться во включенных файлах». Я бы разрешил это во-первых, возможно, установив переменные в массиве и подав это как аргумент функции (возможно, используя 'extract' внутренне на данный момент) – Wrikken
@MainMa, это не так. Для этого вам нужно использовать 'global $ some_global_var' или' $ GLOBALS ['some_global_var'] '. – Lekensteyn