У меня есть класс под названием Request
.В какой-то момент в этом классе я создаю новый контроллер, используя следующий код, передавая $this
в конструкторе:
$controller = new $this->_controllerName($this);
Мой конструктор контроллера выглядит следующим образом:
public function __construct(Request $request) {
parent::__construct($request);
// More stuff
}
ЕслиЯ изменяю $request
в этом объекте или его родительском объекте, значения не изменяются в объекте, который первоначально вызвал его.Я также попытался изменить определение конструктора на public function __construct(Request &$request) {
(как сказано на php.net ), но это тоже не работает.Как я могу это исправить?
Заранее спасибо!
Редактировать 1: Как спросили некоторые код, который показывает, что я делаю с $request
.У класса есть публичное свойство с именем _response
, которое имеет публичное свойство с именем _body
.В одном из моих методов я делаю следующее:
$this->_request->_response->_body = $this->_template->_render();
Теперь мне нужно, чтобы запрос, из которого я вызвал метод, имел такое же свойство _request
, чтобы я мог получить тело.
Я забыл упомянуть, что я сбросил объект сразу после вызова метода, это проблема?
Редактировать 2: Как указано ниже, он действительно работает, но этопочему-то больше не работает, когда я вызываю его из моей __destruct()
функции.Почему это так?