Мне было интересно, возможна ли такая комбинация.Вызвать класс B из класса A и наследовать свойства класса A?
classA.php
class A
{
public $one = "one";
function start() {
$this->one = "seven";
include "classB.php";
$two = new B;
print_r(get_defined_vars());
}
}
classB.php
class B extends A
{
public $two = "two";
function __construct() {
echo($this->one);
}
}
и, наконец, index.php
include "classA.php";
$A = new A;
$A->start();
Когда я бегу index.php, я получаю следующее:
Array
(
[one] => seven
[B] => B Object
(
[two] => two
[one] => one
)
)
Есть ли способ заставить класс B использовать обновленные переменные? Или мне нужно просто разделить код на два файла и использовать его отдельно? Таким образом, это работает как минимум ... Но мне не нравится, когда мой код находится за пределами классов, и я стараюсь минимизировать использование глобальной области ...
BTW: Я знаю __construct(), я написал код без __construct так, что __construct() вообще не будет вызван. –
Вы действительно должны прочитать немного больше о наследовании, на самом деле работает .... если класс B расширяет класс A, тогда вы должны создавать экземпляр класса B .... но не встраивать код для класса B в середине класса A через include .... это не наследование вообще –
Что вы хотите достичь? – sectus