Я пытаюсь сделать дочерний класс (каналы) наследованием переменной из основного класса (контроллера).Наследование переменных от основного класса до расширенного класса PHP
У меня есть 3 файла. Они выглядят следующим образом.
файл ядра:
/* ----------------------------- *
* LOAD THE CONTROLLER CLASS NOW *
* ----------------------------- */
require(CORE_PATH . 'controller.php');
require(CORE_PATH . 'load_controller.php');
КОНТРОЛЛЕР КЛАСС:
<?php
class Controller {
var $sessions, $a;
public function __construct() {
$this->sessions = new Sessions();
$this->a = 'yo';
}
}
ПОДАЧИ КЛАСС:
class Feeds extends Controller {
public function feeds() {
/* We can load other resources here */
}
function index($val) {
echo $this->a;
}
}
Исправление:
<?php require(PROTECT);
class Controller {
protected $variable = "Setting the variable right here works.";
public function __construct() {
$this->variable = "Setting it right here will only work for the current object. It's as if variable isn't being set at all when it comes to other classes.";
}
}
Просто потому, что классы связаны не означает ** отдельные экземпляры объекта ** будут делиться ** теми же данными **. Это не так, как это работает. – deceze
Возможный дубликат [как получить доступ к родительской переменной из дочернего класса] (http://stackoverflow.com/questions/14178329/how-to-access-parent-variable-from-child-class) – deceze
@deceze - Это не то, что Я пытаюсь это сделать. В этом случае экземпляры несущественны. Я просто пытаюсь унаследовать $ a и $ сеансы из класса Controller, к классу Feeds, который расширяет контроллер. Когда я пытаюсь получить доступ к переменной $ a, используя ключевое слово $ this, это не сработает. – Devontrae