У меня есть базовый класс и несколько классов, которые простираются от базового класса.
class B {}
class C extends B {}
class D extends B {}
Как я могу создать C или D внутри метода динамически из B? какой лучший способ?
Например, я попробовал:
class B {
function hello() { echo "hello"; }
function createObject()
{
$temp = new self();
$temp->hello();
}
}
$t = new C();
$t->createObject();
Ты прав! Но вы должны вернуть свой новый объект, например:
class B {
function hello() { echo "hello"; }
function createObject()
{
$temp = new self();
$temp->hello();
return $temp; // <--- here
}
}
$t = new C();
$tNew = $t->createObject();