在PHP OOP中,可以通過外部引用該對象來調用對象的父級方法?PHP OOP如何從對象本身調用對象的父方法?
Class ObjectOne {
protected function method() {
// Does something simple
}
}
Class ObjectTwo extends ObjectOne {
protected function method() {
$temp = clone $this;
$this->change_stuff();
if(parent::method()) {
// Do more stuff here
$temp->method();
// This will call this method, not the parent's method.
}
}
protected function change_stuff() {
// Change this object's stuff
}
}
我不能調用父::()的方法,因爲這將導致當前對象執行它的方法。 我想要$ temp的代替。
解決
我解決它寫的是從類中調用parent::update()
方法的另一個功能:
Class ObjectOne {
protected function method() {
// Does something simple
}
}
Class ObjectTwo extends ObjectOne {
protected function method() {
$temp = clone $this;
$this->change_stuff();
if(parent::method()) {
// Do more stuff here
$temp->update_parent();
// This will call this method, not the parent's method.
}
}
protected function change_stuff() {
// Change this object's stuff
}
protected function update_parent() {
return parent::update();
}
}
我無法調用'parent :: update()',因爲這會導致**當前對象**將其屬性保存到數據庫中。我想要$ temp的代替。 –
不,它不會。它會調用父對象的'update()'方法,如果你做'parent :: update()' – u54r
你錯過了這一點。我不希望這個對象調用update()方法,無論他或父母的。我需要$ temp來調用它。 –