In Javascript weiß ich, dass es einfach ist, eine Klassenmethode einer einzelnen Instanz zu überschreiben, aber ich bin nicht ganz sicher, wie das in PHP managable ist. Hier ist meine erste Idee:PHP-Override-Funktion einer einzelnen Instanz
class Test {
public $var = "placeholder";
public function testFunc() {
echo "test";
}
}
$a = new Test();
$a->testFunc = function() {
$this->var = "overridden";
};
Mein zweiter Versuch mit anonymen Funktionsaufrufen war die leider den Objekt tötet Umfang ...
class Test {
public $var = "placeholder";
public $testFunc = null;
public function callAnonymTestFunc() {
$this->testFunc();
}
}
$a = new Test();
$a->testFunc = function() {
//here the object scope is gone... $this->var is not recognized anymore
$this->var = "overridden";
};
$a->callAnonymTestFunc();
Ich bin nicht sicher, warum Sie das tun möchten. Ist es nur eine Immobilie zu setzen? Oder gibt es andere Funktionalität? –
Möchten Sie auf Klassen- oder Objektebene überschreiben? Wenn Sie auf Klassenebene sind, können Sie einfach Ihre Klasse erweitern und die Funktion auf diese Weise überschreiben. Wenn auf Objektebene können Sie einen Rückruf an den Konstruktor übergeben. – Schore
Es wäre auf Objektebene, können Sie vielleicht weiter erklären, was Sie mit "Sie könnten einen Rückruf an den Konstruktor übergeben" meinen? Danke im Voraus! – marius