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实现WEB动态网页静态
Oct 09 PHP
数据库的日期格式转换
Oct 09 PHP
超级实用的7个PHP代码片段分享
Jan 05 PHP
使用Linux五年积累的一些经验技巧
Jun 20 PHP
codeigniter框架The URI you submitted has disallowed characters错误解决方法
May 06 PHP
PHP中常用的输出函数总结
Sep 22 PHP
在php中设置session用memcache来存储的方法总结
Jan 14 PHP
php函数mkdir实现递归创建层级目录
Oct 27 PHP
ZendFramework2连接数据库操作实例
Apr 18 PHP
laravel实现按时间日期进行分组统计方法示例
Mar 23 PHP
PHP查找一列有序数组是否包含某值的方法
Feb 07 PHP
如何用Laravel包含你自己的帮助函数
May 27 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
PHP5 安装方法
2006/10/09 PHP
php快速url重写 更新版[需php 5.30以上]
2010/04/20 PHP
php计算数组不为空元素个数的方法
2014/01/27 PHP
非常全面的php日期时间运算汇总
2015/11/04 PHP
Aster vs KG BO3 第一场2.19
2021/03/10 DOTA
div层的移动及性能优化
2010/11/16 Javascript
javascript 实现字符串反转的三种方法
2013/11/23 Javascript
jquery实现鼠标滑过显示提示框的方法
2015/02/05 Javascript
JavaScript中判断变量是数组、函数或是对象类型的方法
2015/02/25 Javascript
JavaScript中的this到底是什么(一)
2015/12/09 Javascript
js实现拖拽效果(构造函数)
2015/12/14 Javascript
AngularJS基础 ng-class-odd 指令示例
2016/08/01 Javascript
Bootstrap基本插件学习笔记之Tooltip提示工具(18)
2016/12/08 Javascript
JS返回只包含数字类型的数组实例分析
2016/12/16 Javascript
js实现随机点名系统(实例讲解)
2017/10/18 Javascript
vue实例中data使用return包裹的方法
2018/08/27 Javascript
推荐一个基于Node.js的表单验证库
2019/02/15 Javascript
bootstrap table列和表头对不齐的解决方法
2019/07/19 Javascript
Vue 自定义标签的src属性不能使用相对路径的解决
2019/09/17 Javascript
Python抓取手机号归属地信息示例代码
2016/11/28 Python
python+VTK环境搭建及第一个简单程序代码
2017/12/13 Python
Python 利用内置set函数对字符串和列表进行去重的方法
2018/06/29 Python
python实现Dijkstra算法的最短路径问题
2019/06/21 Python
如何使用Flask-Migrate拓展数据库表结构
2019/07/24 Python
使用 Python 处理3万多条数据只要几秒钟
2020/01/19 Python
浅谈Python3中print函数的换行
2020/08/05 Python
html5服务器推送_动力节点Java学院整理
2017/07/12 HTML / CSS
英国儿童家具专卖店:GLTC
2016/09/24 全球购物
The North Face北面德国官网:美国著名户外品牌
2018/12/12 全球购物
中专生自我鉴定范文
2014/02/02 职场文书
绿色学校实施方案
2014/03/31 职场文书
产假请假条
2014/04/10 职场文书
设备售后服务承诺书
2014/05/30 职场文书
详解Python牛顿插值法
2021/05/11 Python
超详细教你怎么升级Mysql的版本
2021/05/19 MySQL
Python 处理表格进行成绩排序的操作代码
2021/07/26 Python