В основном у меня есть куча классов, наследуемых друг от друга.Итак, чтобы лучше проиллюстрировать мою точку зрения:
IndexController extends fController extends fControllerAbstract extends
MoorActionController extends MoorAbstractController
Итак, самый высокий родительский элемент в этой группе - MoorAbstractController.
В каждой _ construct () есть родительский элемент :: _construct ();за исключением самого нижнего дочернего класса - IndexController
Итак, проблема, с которой я столкнулся, заключается в следующем (который я решил странным образом, но я хочу знать, что происходит):
У меня есть элемент поля в fController, который IndexController наследует, но значение не передается по какой-то странной причине.Таким образом, отображение $ this-> field_member в IndexController ничего не выдает.Сам элемент поля передается вниз, но не значение, которое он содержит.Я исправил эту ошибку, вызвав parent :: __ construct () последним внутри __construct () в fController.
Более странная часть заключается в том, что при тестировании на один уровень вверх (fControllerAbstract передает элемент поля в fController) работает совершенно нормально.Я действительно не уверен, что происходит.
Вот код:
//WORKS
class fController extends fControllerAbstract
{
protected $field_member = null;
public function __construct()
{
$this->field_member="asdasdas";
parent::__construct();
}
}
//DOESNT WORK
class fController extends fControllerAbstract
{
protected $field_member = null;
public function __construct()
{
parent::__construct();
$this->field_member = "asdasdas"; //value doesnt get passed
}
}
//IndexController/ // / //
class IndexController extends fController {
public function beforeAction()
{
}
public function home()
{
echo $this->field_member;
}
}
// fControllerAbstract ////////
class fControllerAbstract extends MoorActionController
{
public function __construct()
{
parent::__construct();
}
}