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 feof用来识别文件末尾字符的方法
Aug 01 PHP
比较全面的PHP数组的使用方法小结
Sep 23 PHP
跟我学Laravel之请求(Request)的生命周期
Oct 15 PHP
php生成静态html页面的方法(2种方法)
Sep 14 PHP
人脸识别测颜值、测脸龄、测相似度微信接口
Apr 07 PHP
CI框架中数据库操作函数$this-&gt;db-&gt;where()相关用法总结
May 17 PHP
PHP编程计算日期间隔天数的方法
Apr 26 PHP
完美的php分页类
Oct 24 PHP
Laravel下生成验证码的类
Nov 15 PHP
PHP钩子实现方法解析
May 21 PHP
Yii框架数据库查询、增加、删除操作示例
Oct 14 PHP
thinkphp5.1框架模板赋值与变量输出示例
May 25 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
第十一节 重载 [11]
2006/10/09 PHP
支持中文的php加密解密类代码
2011/11/27 PHP
php简单定时执行任务的实现方法
2015/02/23 PHP
PHP连接MYSQL数据库的3种常用方法
2017/02/27 PHP
yii2.0整合阿里云oss删除单个文件的方法
2017/09/19 PHP
Laravel框架实现的上传图片到七牛功能详解
2019/09/06 PHP
在Laravel 的 Blade 模版中实现定义变量
2019/10/14 PHP
用倒置滤镜把div倒置,再把table倒置。
2007/07/31 Javascript
如何用js控制css中的float的代码
2007/08/16 Javascript
说说JSON和JSONP 也许你会豁然开朗
2012/09/02 Javascript
jquery实现非叠加式的搜索框提示效果
2014/01/07 Javascript
jQuery实现冻结表头的方法
2015/03/09 Javascript
JQuery日历插件My97DatePicker日期范围限制
2016/01/20 Javascript
js实现html table 行,列锁定的简单实例
2016/10/13 Javascript
Bootstrap面板使用方法
2017/01/16 Javascript
JS canvas绘制五子棋的棋盘
2020/05/28 Javascript
微信小程序之下拉列表实现方法解析(附完整源码)
2019/08/23 Javascript
如何实现js拖拽效果及原理解析
2020/05/08 Javascript
[01:04:14]VP vs TNC 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/20 DOTA
python通过smpt发送邮件的方法
2015/04/30 Python
python模拟事件触发机制详解
2018/01/19 Python
Pandas 数据框增、删、改、查、去重、抽样基本操作方法
2018/04/12 Python
python装饰器常见使用方法分析
2019/06/26 Python
python 图像的离散傅立叶变换实例
2020/01/02 Python
Python requests获取网页常用方法解析
2020/02/20 Python
Django设置Postgresql的操作
2020/05/14 Python
解决python中import文件夹下面py文件报错问题
2020/06/01 Python
python实现简单的学生管理系统
2021/02/22 Python
HTML5 textarea高度自适应的两种方案
2020/04/08 HTML / CSS
追悼会上的答谢词
2014/01/10 职场文书
2013年军训通讯稿
2014/02/05 职场文书
双语教学实施方案
2014/03/23 职场文书
文明之星事迹材料
2014/05/09 职场文书
2014年群众路线党员自我评议
2014/09/24 职场文书
25张裸眼3D图片,带你重温童年的记忆,感受3D的魅力
2022/02/06 杂记
JS开发前端团队展示控制器来为成员引流
2022/08/14 Javascript