Ich habe eine Methode in meiner Klasse, um ein neues 'self' bei der Ausführung zu erstellen.Erstellen einer neuen Instanz einer geerbten Klasse über die geerbten statischen Methoden
class foo {
private $id;
public function __construct($id) {
$this->id = $id;
}
public static function byId($id) {
return new self($id);
}
}
Und jetzt will ich die byId Methode foo verwenden und sie in bar verwenden, um als solche
class bar extends foo {
public function test() {
echo "test";
}
}
jetzt tun sollte ich in der Lage sein, bar zu tun :: byId (id), Dies liefert jedoch immer das übergeordnete Objekt und nicht das Balkenobjekt.
Wie kann ich sicherstellen, dass byId das Objekt der geerbten Klasse zurückgibt, wenn es durch es aufgerufen wird?
Wie würden 'Test()' jemals rufen 'foo :: byId()'? Was .. –
Lawrence Cherone Ich bin mir nicht sicher, was du meinst, ich möchte bar-> test() mit dem statischen Balken :: byId (id), wo die byId statische Methode von foo – pandaJuan
geerbt wurde versucht haben Sie versucht haben Verwenden Sie 'return new static ($ id);' ist nicht von 'return new self ($ id);'? –