Ben aşağıdaki gibi tanımlanan soyut bir sınıf vardır:
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();
}
}
Aşağıdaki gibi sınıf çocuk, iki soyut yöntemlerini tanımlar:
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;
}
}
Ben bu deneyin Ancak, ben bir hata alıyorum:
Parse error: syntax error, unexpected T_OBJECT_OPERATOR in /var/www/.../abstractparent.php on line 27
hangi soyut ana soyut yöntemlerden birini çağırıyor hattıdır. Ne olmasını istiyorum bu hat tanımlanan çocuk yöntemini çağırın gerektiğidir.
Şimdi, bunu yapmak için bir yol olduğunu varsayalım, ve PHP için bir acemi olduğum için, ben temelde yanlış bir şey yapıyorum. Ben ne yapabileceği gibi herhangi bir öneri bu sorunu çözmek için? Ben uygulamaları olan, ve sonra (hepsi de soyut sınıflar ile anlaşma değil) tüm çocukların bu yöntemleri geçersiz kılma gibi iki soyut yöntemlerini tanımlamak için olsaydı, nasıl bu yöntemlerden birini çağırarak ana uygun çağırır olacağını sağlayacak yürütme zamanda çocuk yöntemi?
EDIT
Statik ve soyut birleştirerek konuda çeşitli yorumlar ışığında, ben de yukarıda gösterildiği, yeni bir hata ile yukarıdaki gibi sınıfları yeniden.