У меня установлен форум SMF, который является не-OO-приложением. Я надеюсь создать дополнительное приложение в директории в форуме, которая включает в себя файл SSI из SMF, а затем использует функции из SMF, но в объектно-ориентированной настройке.Получение глобальной переменной с помощью приложения OO
Если это невозможно, то прекратите читать здесь и, пожалуйста, объясните, почему, потому что я изо всех сил, чтобы выяснить, что случилось здесь (может быть тот факт, что я не спал в течение почти 24 часов)
Так это то, что у меня есть:
SMF имеет файл, SSI.php - Когда включен, это устанавливает нагрузку глобальных переменных, а также устанавливает определение
define('SMF', 'SSI');
у меня есть папка с названием консоли , который имеет ряд файлов. С index.php, я называю Servlet файл, который имеет
require_once '../SSI.php';
class Servlet
{
public function __construct(){
}
public function processRequest(){
echo SMF;
var_dump($context) //This is the global variable that should be set
}
}
Это выводит SSI, а затем неопределенная переменная ошибки.
Это, вероятно, действительно очевидно, но почему задано определение, а не контекст глобальный? Если я делаю это за пределами класса, он работает.
Спасибо!
-Edit-
Просто, чтобы объяснить, почему это не дубликат связанного вопроса ... Я не думаю, что нужно много объяснений, кроме этого есть конкретный вопрос, касающийся конкретной проблемы области видимости и конкретная ошибка, адаптированная к моему приложению, которая представляет собой смесь ОО и процедурного программирования, что приводит к некоторой путанице.
Мой вопрос не был «Что такое переменная область действия?»
Спасибо.
Попробуйте положить 'global $ context;' перед вашим 'var_dump ($ context);'. Это очень плохой способ сделать это, но он выполнит эту работу, если глобальные переменные не находятся в более низкой области. лучший вариант - передать переменные, необходимые при вызове метода. –
О, человеку, которому я должен спать, это было так очевидно, и теперь я так сильно пинаю. Спасибо, ха-ха. –