У меня возникли проблемы с некоторым устаревшим кодом, который я пытаюсь добавить в проект Yii.php function глобальные определенные переменные не работают с Yii
Это связано с глобальными переменными, которые, как мне известно, должны передаваться в качестве параметров, но поскольку этот старый код и используется в других проектах, переписанных, это не так и не вариант.
$testVar = '123';
function testOutput() {
global $testVar;
var_dump($testVar);
}
testOutput();
Теперь, если я включить этот файл в простом файле PHP он работает и выводит
string '123' (length=3)
Но если включить этот файл в контроллере Yii или даже в выходных шаблонах, то это
null
Я попытался найти эту проблему, но я просто получаю кучу результатов о том, что люди используют глобальные переменные неправильно. Я уверен, что это не проблема Yii, но, скорее всего, настройка php_ini, которую устанавливает Yii, но я не могу ничего найти при поиске кода или документов Yii, которые объяснят это.
Этот пример можно протестировать, просто создав файл с моим первым блоком кода, а затем включите его в шаблон или контроллер Yii. Я даже тестировал его с помощью чистого проекта Yii.
Надеюсь, я не навредил своим шансам разобраться в этом, отметив этот вопрос с Yii, так как у меня есть ощущение, что это не просто проблема Yii.
Любые идеи были бы очень признательны.
Если вы объявили '$ testVar = 123' внутри функции/класса, это не является глобальным. – DCoder
, если вы используете 'global $ testVar; $ testVar = 123; 'в начале до определения функции, он будет работать, я только что проверил с контроллером Yii –
@MarkoD вы правы, но почему это? Любые документы, чтобы сказать, почему это необходимо и почему структура Yii заставляет это потребоваться? Также вы положили это как ответ, и я бы принял его. – byoungb