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 5.0对象模型深度探索之类的静态成员
Mar 27 PHP
windows环境下php配置memcache的具体操作步骤
Jun 09 PHP
php 下载保存文件保存到本地的两种实现方法
Aug 12 PHP
php inc文件使用的风险和注意事项
Nov 12 PHP
PHP @ at 记号的作用示例介绍
Oct 10 PHP
浅谈php优化需要注意的地方
Nov 27 PHP
PHP和Mysql中转UTF8编码问题汇总
Oct 10 PHP
分享PHP守护进程类
Dec 30 PHP
Yii2中SqlDataProvider用法示例
Sep 22 PHP
php实现算术验证码功能
Dec 05 PHP
ThinkPHP框架实现FTP图片上传功能示例
Apr 08 PHP
laravel自定义分页的实现案例offset()和limit()
Oct 15 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操作MySQL的mysql_fetch_* 函数的常见用法教程
2015/12/25 PHP
php实现压缩合并js的方法【附demo源码下载】
2016/09/22 PHP
PHP基于GD库的图像处理方法小结
2016/09/27 PHP
prototype 源码中文说明之 prototype.js
2006/09/22 Javascript
Javascript之旅 对象的原型链之由来
2010/08/25 Javascript
JSONP 跨域访问代理API-yahooapis实现代码
2012/12/02 Javascript
js设置cookie过期及清除浏览器对应名称的cookie
2013/10/24 Javascript
用js控制组织结构图可以任意拖拽到指定位置
2014/01/17 Javascript
js模拟C#中List的简单实例
2014/03/06 Javascript
jQuery控制网页打印指定区域的方法
2015/04/07 Javascript
javascript数组常用方法汇总
2016/09/10 Javascript
JavaScript中数组Array.sort()排序方法详解
2017/03/01 Javascript
浅析vue component 组件使用
2017/03/06 Javascript
vue中七牛插件使用的实例代码
2017/07/28 Javascript
详解vuex中mapState,mapGetters,mapMutations,mapActions的作用
2018/04/13 Javascript
详解如何使用koa实现socket.io官网的例子
2018/11/04 Javascript
JavaScript数据结构与算法之基本排序算法定义与效率比较【冒泡、选择、插入排序】
2019/02/21 Javascript
基于Vue+elementUI实现动态表单的校验功能(根据条件动态切换校验格式)
2019/04/04 Javascript
微信小程序停止其他视频播放当前视频的实例代码
2019/12/25 Javascript
vue单应用在ios系统中实现微信分享功能操作
2020/09/07 Javascript
[02:01]BBC DOTA2国际邀请赛每日综述:八强胜者组鏖战,中国队喜忧参半
2014/07/19 DOTA
简单介绍Python的Tornado框架中的协程异步实现原理
2015/04/23 Python
Python求导数的方法
2015/05/09 Python
Python基于hashlib模块的文件MD5一致性加密验证示例
2018/02/10 Python
Linux下安装python3.6和第三方库的教程详解
2018/11/09 Python
Python读取YUV文件,并显示的方法
2018/12/04 Python
python+os根据文件名自动生成文本
2019/03/21 Python
使用Python实现跳帧截取视频帧
2019/05/31 Python
解决pip安装的第三方包在PyCharm无法导入的问题
2020/10/15 Python
市场部专员岗位职责
2013/11/30 职场文书
学生会招新策划书
2014/02/14 职场文书
初中优秀教师事迹材料
2014/08/18 职场文书
家庭贫困证明
2014/09/23 职场文书
会计工作态度自我评价
2015/03/06 职场文书
关于车尾的标语大全
2015/08/11 职场文书
学校扫黄打非工作总结
2015/10/15 职场文书