親クラス postParent は抽象として定義されており、サブクラスが buildHTML() メソッドを再実装する必要があると規定されています。このメソッドには中括弧がありません。コンテンツがあるかどうかに関係なく、エラーが報告されます。
今見れば見るほど、このコードでは抽象クラスを使う必要はなく、継承も無駄であると感じます。まあ、良いことは何もありません。 。 。 。 。
さらに、mysql を外部に分離したので、メソッドの呼び出しが非常に面倒です
1、最初に readArticle をインスタンス化します
2、mysql クエリ、パラメータは readArticle::getSQL() から取得します
3、 return mysql 結果のリソースは readArticle::fetchResult( $result );
4、readArticle::buildHTML(); HTML を返します
リスト ループ出力の場合は、3 と 4 を繰り返し呼び出すだけです
コードをコピーします コードは次のとおりです。
abstract class postParent
{
protected $querySQL
public $fetchResult; // 例: 2 日前
abstract protected function buildHTML()
{
return $this->querySQL ;
}
パブリック関数 fetchResult( $result )
{
$this->fetchResult = mysql_fetch_assoc( $result )
}
パブリック関数 error()
{}
}
class readArticle extends postParent
{
public function __construct( $id )
{
$this->querySQL =<<
WHERE id = $id ORDER BY unixtime DESC;
eof>}
public function buildHTML()
{
return < ;<
class="post-title-a" > >fetchResult['title ']}
時刻
{$this-> fetchResult['text'] }
}
}