PHP - инициализировать экземпляр объекта в конструкторе класса, доступ внутри статического члена
Я использую инфраструктуру для маршрутизации своих маршрутов к контроллерам и их соответствующим методам, однако я не уверен, как инициализировать классы в конструкторе, а затем получить к нему доступ через статический член того же класса.
class Controller {
static private $test = null;
private function __construct(){
#$this->test = new Test();
self::$test = new Test();
}
public static function Index(){
// rather than this
#$test = new Test();
#echo $test->greet();
// something like this
#echo self::$test->greet();
}
}
1 ответ
Решение
Вы должны инициализировать контроллер в первую очередь. Ты можешь позвонить new Controller();
для этого, который затем ставит экземпляр Test
в private $test
<?php
Class Test {
public function greet(){
return "hello world";
}
}
class Controller {
static private $test = null;
private function __construct(){
self::$test = new Test();
}
public static function Index(){
new Controller();
echo self::$test->greet();
}
}
Controller::Index(); //Returns hello world