1

Вот мой код:страница не загружается при создании экземпляра переменной в конструкции

это работает:

<?php 

private $controller; 

public function __construct() { 
} 

public function randomFunc() { 
    $this->controller = new Controller(); 
    return $this->controller; 
} 

?> 

не работает:

<?php 

private $controller; 

public function __construct() { 
    $this->controller = new Controller(); 
} 

public function randomFunc() { 
    return $this->controller; 
} 

?> 

, как вы можете см., когда я назначаю $controller = new Controller() в функции, он работает, но когда я делаю это в конструировании, он не работает. Как так? спасибо

+1

напишите свой полный код, который включает в себя класс и любые включенные/требуемые вами функции. –

+0

@ Fred-ii- это в значительной степени полный код. Я использую mvc, поэтому запрос поступает из файла, прежде чем он попадет в этот файл. – jasonmoqio

ответ

1

Из-за рекурсии в конструкторе. Вы можете сделать что-то подобное для singleton:

protected function __construct() {} 

public static function getInstance() 
{ 
    return new Controller(); 
} 
+0

вы можете объяснить, что это значит и что я делаю неправильно? извините im новое к этому. – jasonmoqio

+0

Итак, у вас есть переменная, которая инициализируется в конструкторе. Но начался как объект самого себя. С переменной как объект себя. С переменным как объект себя. ... Loop :) – Saliery

+0

о, я вижу, спасибо! но я также могу добавить '$ this-> controller = new Controller();' в каждой функции справа? – jasonmoqio