2015-12-09 3 views
0

Внутри моего php-класса Пациент, у меня есть статический метод, в котором инициализируются некоторые статические переменные класса, которые отлично работают. Я делаю это так:Как ссылаться на статическую переменную класса внутри пространства имен?

private static $request; 

public static function init() { 
    self::$request = new Something(); 
} 

Но когда я добавить пространство имен в верхней части файла, он умирает на этой линии по какой-то причине, и это меня смущает. Есть ли специальный способ вызова статических переменных внутри пространства имен?

+0

У вас есть ошибки php, и если да, то какая ошибка? –

+0

Является ли класс 'Something' в вашем пространстве имен? –

ответ

1

Поскольку ваш код работает, когда он находится в глобальном пространстве имен, но не работает, когда он находится в пользовательском пространстве имен, вам необходимо предоставить полное имя класса, когда вы используете внешние классы. Таким образом, в этой ситуации, просто изменить свой код:

public static function init() { 
    self::$request = new \Something(); 
} 

И если по каким-то причинам это не решит проблему, то вы можете, по крайней мере исключает статические переменные, имеющие отношение к проблеме, (временно) изменяя self::$request = до $temp = и отмечая, что проблема все еще встречается.

+0

Это именно то, что я искал, спасибо ☺️ –

+0

Приветствия! Удачи с вашим проектом. – Nate

Смежные вопросы