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