Глобальная переменная Php теряется - PullRequest
0 голосов
/ 30 июля 2011

Я должен использовать глобальную переменную (ссылку на объект).В зависимости от некоторых обстоятельств, я должен загрузить разные скрипты для использования.Все сценарии должны использовать этот $ mailer.К сожалению, для принятия этого решения я использую статическую функцию, которая «забывает» затем глобальные переменные.

$mailer = new Mailer();
myFrameWork::loadModule();

....

public static function callModule()
{
include_other_module_depends_on_circumstances_etc
}

, но включенные сценарии незнать переменную $ mailer.Это нормально, так как это метод.Но я не хочу передавать эту переменную в callModule, я хочу общее решение.Если бы я просто использовал:

$mailer = new Mailer();
include_other_module_depends_on_circumstances_etc

, тогда все работает нормально.

1 Ответ

0 голосов
/ 30 июля 2011

Я настоятельно рекомендую не использовать статические методы для такой работы; с ООП довольно легко использовать обычные объекты для инициализации и прочее.

Учитывая, что ваш класс myFrameWork полностью статический класс, почему бы не передать ему этот объект с другим статическим классом и сохранить его в закрытой статической переменной? Таким образом, вам не нужно загрязнять вызов функции, и вы все равно можете использовать значение там, где это необходимо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...