导读在面向对象的开发中,所有的对象都是通过类来描述的,但是如果一个类中没有足够信息来描述一个具体的对象那么就成为抽象类,但是你知道如何应用php抽象类吗?下面我们去看看应用php抽象类的方法。All right, 父类pos

在面向对象的开发中,所有的对象都是通过类来描述的,但是如果一个类中没有足够信息来描述一个具体的对象那么就成为抽象类,但是你知道如何应用php抽象类吗?下面我们去看看应用php抽象类的方法。

All right, 父类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 $fetchResult;
public $timeAgo; // eg : 2 days ago
abstract protected function buildHTML();
public function getSQL()
{
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 =<< SELECt title, author, text, unixtime FROM post
WHERe id = $id ORDER BY unixtime DESC;
eof;
}
public function buildHTML()
{
return <<



class="post-title-a" > {$this->fetchResult['title']}





{$this->fetchResult['text']}


eof;
}
}

看完应用php抽象类的方法之后是不是觉得这个技巧并没有我们想象中那么困难呢??如果你看完本篇文章还不理解的话就请留言给爱站小编吧!


原文链接:https://js.aizhan.com/develop/php/9819.html
如有疑问请与原作者联系