Вы упомянули вы работаете с унаследованным кодом, так что может быть целесообразным, чтобы сохранить использование глобалов для согласованности - хотя использование глобальных переменных обычно считается очень плохая практика, я вообще считаю непоследовательно, используя глобальные ошибки, чтобы быть хуже.
Сломать область видимости функции и тянуть в переменных из глобального масштаба необходимо вызвать global
ключевое слово из функции:
<?php
$var = "green";
Function index(){
global $var;
echo "The apple is $var";
}
?>
This answer подытоживает почему global
переменные считаются плохой практикой:
Нет никаких признаков того, что эта функция имеет какие-либо побочные эффекты, но она делает. Это очень легко становится запутанным беспорядком, поскольку некоторые функции сохраняют , изменяя и требуя некоторого глобального состояния. Вы хотите, чтобы функции были без гражданства, действуя только на их входы и возвращая определенный выход, , сколько раз вы их называете.
Однако в этом конкретном примере вы не изменяете состояние $var
- только чтение. Поэтому проблемы минимальны.
Проблемы с глобальным состоянием можно прочитать более подробно на Programmers.SE.
Это не проблема с включением, а проблема с переменной областью. Вам не нужно определять его как 'global' в' code.php'. Когда вы включаете файл, вы наследуете все эти переменные.Вам нужно передать его в качестве аргумента в функции, 'function index ($ var) {}', а затем вызвать эту функцию 'index ($ var);' – Qirel
Для дальнейшего чтения взгляните на это: [Ссылка: Что переменная область видимости, какие переменные доступны из того, где и какие ошибки «неопределенной переменной»?] (http://stackoverflow.com/questions/16959576/reference-what-is-variable-scope-which-variables-are-accessible -from-where-and) – Qirel
@Qirel благодарит вас за ответ –