В javascript я знаю, что можно просто переопределить класс-метод одного экземпляра, но я не совсем уверен, как это управляется в PHP. Вот моя первая мысль:Функция переопределения PHP одного экземпляра
class Test {
public $var = "placeholder";
public function testFunc() {
echo "test";
}
}
$a = new Test();
$a->testFunc = function() {
$this->var = "overridden";
};
Моей вторая попытка была звонки анонимных функций, которые, к сожалению, убивает объекта объема ...
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();
Я не уверен, почему вы хотели бы это сделать. Только для того, чтобы установить свойство? Или есть другие функции? –
Вы хотите переопределить уровень класса или объекта? Если на уровне класса вы можете просто расширить свой класс и переопределить функцию таким образом. Если на уровне объекта вы можете передать обратный вызов конструктору. – Schore
было бы на уровне объекта, можете ли вы объяснить, что вы подразумеваете под «вы могли бы передать обратный вызов конструктору»? Заранее спасибо! – marius