Hier ist meine Situation:
Ich habe eine Klasse, die von einem Dutzend anderer geerbt wird, in dieser Klasse habe ich eine Kopiermethode, die eine Kopie von sich selbst zurückgibt.
Ich kann diese Methode in der Vererbungsklasse verwenden, aber offensichtlich liefert die Methode immer eine Instanz der Superklasse, nicht die, die von ihr erbt.
Ich möchte, dass meine Kopiermethode eine Instanz der ihneriting-Klasse zurückgibt.
PHP - Vererbbare Kopiermethode
BaseEntity.php:
class BaseEntity
{
protected $id;
protected $name;
protected $active;
protected $deleted;
// ...
public function copy()
{
$copy = new BaseEntity();
$copy->id = $this->id;
$copy->name = $this->name;
$copy->active = $this->active;
$copy->deleted = $this->deleted;
return $copy;
}
}
User.php:
class User extends BaseEntity
{
// ...
// Properties are the same as BaseEntity, there is just more methods.
}
Warum nicht verwendest du 'clone'? – PeeHaa
Dann müssen Sie die Methode copy() in der Klasse "User" erben und dort Ihre Logik hinzufügen. –
'$ copy = new get_class ($ this)' probiere das anstelle von '$ copy = new BaseEntity();' – ineersa