我已經定義爲抽象類如下:PHP抽象方法解決
abstract class Abstract Parent extends Zend_Db_Table_Abstract {
abstract function funcA($post);
abstract function funcB();
public function newEntry($post) {
$t1 = $this->funcA($post);
$t2 = $this->funcB();
}
}
的子類定義了兩個抽象方法,具體如下:
require_once 'atablemodel.php';
class Child extends AbstractParent {
public function funcB()
{
return 'Some Value';
}
public function funcA($post)
{
$data = array(
'v1' => htmlentities($post['v1'])
);
return $data;
}
}
然而,當我試試這個,我得到一個錯誤:
Parse error: syntax error, unexpected T_OBJECT_OPERATOR in /var/www/.../abstractparent.php on line 27
這是抽象父母調用其中一種抽象方法的行。我想要發生的是這條線應該調用定義的子方法。
現在,我認爲有辦法做到這一點,既然我是PHP的初學者,我正在做一些根本性錯誤的事情。有什麼建議可以解決這個問題?如果我要將兩個抽象方法定義爲具有實現,然後覆蓋所有孩子中的這些方法(即根本不處理抽象類),那麼如何確保調用其中一個方法的父級將調用適當的子程序在執行時?
編輯
大約在結合靜態和抽象問題的各種意見來看,我重新定義了類如上述,用新的錯誤,上面也顯示。
一種方法既抽象又靜態是沒有意義的。 – 2009-12-15 02:22:43
除外 - 該方法在實現類的上下文中是靜態的。值總是相同的,並且不依賴於類的狀態。除非從編譯器的角度來看,這是無效的...... – Elie 2009-12-15 02:27:01
糟糕...忘記了導致最新錯誤的$。我之前感到很蠢,現在情況更糟!謝謝大家的幫助! – Elie 2009-12-15 02:53:19