php 抽象类的简单应用


Posted in PHP onSeptember 06, 2011

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 =<<<eof 
SELECT title, author, text, unixtime FROM post 
WHERE id = $id ORDER BY unixtime DESC; 
eof; 
} 
public function buildHTML() 
{ 
return <<<eof 
<div id="post-text"> 
<div class="post-title-div"> 
<h4> 
<a href="http://foodstory.me/post.php?id={$this->fetchResult['id']}" 
class="post-title-a" > {$this->fetchResult['title']} 
</a> 
</h4> 
</div> 
<div class="post-info-div"> 
<span class='post-info-author'>{$this->fetchResult['author']}</span> at 
<time class='post-info-time'>{$this->timeAgo}</time> 
</div> 
<div class="post-p-div"> 
{$this->fetchResult['text']} 
</div> 
</div> 
eof; 
} 
}
PHP 相关文章推荐
PHP的开发框架的现状和展望
Mar 16 PHP
PHP中extract()函数的妙用分析
Jul 11 PHP
PHPEXCEL 使用小记
Jan 06 PHP
php中防止SQL注入的最佳解决方法
Apr 25 PHP
从零开始学YII2框架(一)通过Composer安装Yii2框架
Aug 20 PHP
php使用ereg验证文件上传的方法
Dec 16 PHP
PHP超牛逼无限极分类生成树方法
May 11 PHP
php自动识别文字编码并转换为目标编码的方法
Aug 08 PHP
php实现数字补零的方法总结
Sep 12 PHP
PHP date()格式MySQL中插入datetime方法
Jan 29 PHP
PHP PDOStatement::nextRowset讲解
Feb 01 PHP
PHP去除空数组且数组键名重置的讲解
Feb 28 PHP
PHP中PDO基础教程 入门级
Sep 04 #PHP
PHP中PDO的错误处理
Sep 04 #PHP
php中将网址转换为超链接的函数
Sep 02 #PHP
php ajax 静态分页过程形式
Sep 02 #PHP
php中防止伪造跨站请求的小招式
Sep 02 #PHP
10个实用的PHP代码片段
Sep 02 #PHP
PHP文件操作实现代码分享
Sep 01 #PHP
You might like
php 无限分类 树形数据格式化代码
2016/10/11 PHP
PHP版微信小店接口开发实例
2016/11/12 PHP
Js 弹出框口并返回值的两种常用方法
2010/12/30 Javascript
jquery构造器的实现代码小结
2011/05/16 Javascript
jquery动态增加删除表格行的小例子
2013/11/14 Javascript
jquery实现图片水平滚动效果代码分享
2015/08/26 Javascript
HTML5+jQuery插件Quicksand实现超酷的星际争霸2兵种分类展示效果(附demo源码下载)
2016/05/25 Javascript
JavaScript用构造函数如何获取变量的类型名
2016/12/23 Javascript
jquery实现百叶窗效果
2017/01/12 Javascript
使用vue-resource进行数据交互的实例
2017/09/02 Javascript
使用JavaScrip模拟实现仿京东搜索框功能
2019/10/16 Javascript
解决Vue项目打包后打开index.html页面显示空白以及图片路径错误的问题
2019/10/25 Javascript
javascript前端实现多视频上传
2020/12/13 Javascript
JavaScript 声明私有变量的两种方式
2021/02/05 Javascript
[43:36]Liquid vs Mineski 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
在Python中使用AOP实现Redis缓存示例
2017/07/11 Python
python自动查询12306余票并发送邮箱提醒脚本
2018/05/21 Python
Python实现的读写json文件功能示例
2018/06/05 Python
使用python将大量数据导出到Excel中的小技巧分享
2018/06/14 Python
Python爬取个人微信朋友信息操作示例
2018/08/03 Python
python 删除字符串中连续多个空格并保留一个的方法
2018/12/22 Python
使用python打印十行杨辉三角过程详解
2019/07/10 Python
react+django清除浏览器缓存的几种方法小结
2019/07/17 Python
Python函数的默认参数设计示例详解
2019/12/01 Python
Python with语句和过程抽取思想
2019/12/23 Python
基于TensorBoard中graph模块图结构分析
2020/02/15 Python
Python IDLE或shell中切换路径的操作
2020/03/09 Python
python实现图片转换成素描和漫画格式
2020/08/19 Python
美国诺德斯特龙百货官网:Nordstrom
2016/08/23 全球购物
装修五一活动策划案
2014/01/23 职场文书
建筑设计专业求职自我评价
2014/03/02 职场文书
出纳员岗位职责风险
2014/03/06 职场文书
酒店管理专业自荐信
2014/05/23 职场文书
药剂专业自荐书
2014/06/20 职场文书
保研导师推荐信
2015/03/25 职场文书
基于Apache Hudi在Google云构建数据湖平台的思路详解
2022/04/07 Servers