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下保存远程图片到本地的办法
Aug 08 PHP
PHP中for与foreach的区别分析
Mar 09 PHP
新浪微博API开发简介之用户授权(PHP基础篇)
Sep 25 PHP
163的邮件用phpmailer发送(实例详解)
Jun 24 PHP
PHP连接MSSQL时nvarchar字段长度被截断为255的解决方法
Dec 25 PHP
php根据某字段对多维数组进行排序的方法
Mar 07 PHP
PHP加密解密实例分析
Dec 25 PHP
浅谈PHP中其他类型转化为Bool类型
Mar 28 PHP
基于php判断客户端类型
Oct 14 PHP
thinkPHP+ajax实现统计页面pv浏览量的方法
Mar 15 PHP
使用ThinkPHP生成缩略图及显示
Apr 27 PHP
yii2.0整合阿里云oss的示例代码
Sep 19 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
JavaScript中继承的一些示例方法与属性参考
2010/08/07 Javascript
jQuery 拖动层(在可视区域范围内)
2012/05/24 Javascript
javascript中input中readonly和disabled区别介绍
2012/10/23 Javascript
js onload处理html页面加载之后的事件
2013/10/30 Javascript
JavaScript中使用stopPropagation函数停止事件传播例子
2014/08/27 Javascript
nodejs下打包模块archiver详解
2014/12/03 NodeJs
vue,angular,avalon这三种MVVM框架优缺点
2016/04/27 Javascript
Easyui Treegrid改变默认图标的方法
2016/04/29 Javascript
快速使用Bootstrap搭建传送带
2016/05/06 Javascript
jQuery ajax MD5实现用户注册即时验证功能
2016/10/11 Javascript
微信js-sdk分享功能接口常用逻辑封装示例
2016/10/13 Javascript
BootStrap 获得轮播中的索引和当前活动的焦点对象
2017/05/11 Javascript
javascript 数据存储的常用函数总结
2017/06/01 Javascript
JS原生数据双向绑定实现代码
2017/08/14 Javascript
微信小程序自定义组件之可清除的input组件
2018/07/17 Javascript
jQuery实现每日秒杀商品倒计时功能
2019/09/06 jQuery
js HTML DOM EventListener功能与用法实例分析
2020/04/27 Javascript
python3图片转换二进制存入mysql
2013/12/06 Python
python中xrange和range的区别
2014/05/13 Python
python之matplotlib学习绘制动态更新图实例代码
2018/01/23 Python
python编程使用协程并发的优缺点
2018/09/20 Python
Python的argparse库使用详解
2018/10/09 Python
pycharm+PyQt5+python最新开发环境配置(踩坑)
2019/02/11 Python
Python如何处理大数据?3个技巧效率提升攻略(推荐)
2019/04/15 Python
python画图把时间作为横坐标的方法
2019/07/07 Python
python+selenium 鼠标事件操作方法
2019/08/24 Python
Python3操作读写CSV文件使用包过程解析
2020/04/10 Python
Django如何使用redis作为缓存
2020/05/21 Python
python如何求圆的面积
2020/07/01 Python
python模块内置属性概念及实例
2021/02/18 Python
英国水族馆和池塘用品购物网站:Warehouse Aquatics
2019/08/29 全球购物
银行职员工作失误检讨书
2014/10/14 职场文书
毕业论文致谢范文
2015/05/14 职场文书
《追风筝的人》:人心中的成见是座大山,但请不忘初心
2019/11/15 职场文书
Python中的xlrd模块使用整理
2021/06/15 Python
javascript函数式编程基础
2021/09/15 Javascript