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实现生成唯一编号(36进制的不重复编号)
Jul 01 PHP
PHP冒泡算法详解(递归实现)
Nov 10 PHP
php实现读取内存顺序号
Mar 29 PHP
PHP共享内存用法实例分析
Feb 12 PHP
Zend Framework教程之视图组件Zend_View用法详解
Mar 05 PHP
基于thinkPHP框架实现留言板的方法
Oct 17 PHP
php 判断字符串编码是utf-8 或gb2312实例
Nov 01 PHP
ThinkPHP 整合Bootstrap Ajax分页样式
Dec 23 PHP
php及codeigniter使用session-cookie的方法(详解)
Apr 06 PHP
Laravel中日期时间处理包Carbon的简单使用
Sep 21 PHP
PDO::prepare讲解
Jan 29 PHP
Thinkphp5.0框架使用模型Model的获取器、修改器、软删除数据操作示例
Oct 11 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
phpmyadmin 访问被拒绝的真实原因
2009/06/15 PHP
ecshop 订单确认中显示省市地址信息的方法
2010/03/15 PHP
php中$_REQUEST、$_POST、$_GET的区别和联系小结
2011/11/23 PHP
php5.3 注意事项说明
2013/07/01 PHP
php执行多个存储过程的方法【基于thinkPHP】
2016/11/08 PHP
baidu博客的编辑友情链接的新的层窗口!经典~支持【FF】
2007/02/09 Javascript
使用jquery动态加载javascript以减少服务器压力
2012/10/29 Javascript
jQuery中$.each使用详解
2015/01/29 Javascript
jQuery实现自动与手动切换的滚动新闻特效代码分享
2015/08/27 Javascript
JavaScript代码实现禁止右键、禁选择、禁粘贴、禁shift、禁ctrl、禁alt
2015/11/17 Javascript
Bootstrap三种表单布局的使用方法
2016/06/21 Javascript
BootStrap入门教程(一)之可视化布局
2016/09/19 Javascript
jQuery实现输入框邮箱内容自动补全与上下翻动显示效果【附demo源码下载】
2016/09/20 Javascript
获取JavaScript异步函数的返回值
2016/12/21 Javascript
python爬取安居客二手房网站数据(实例讲解)
2017/10/19 Javascript
React如何避免重渲染
2018/04/10 Javascript
vue和webpack项目构建过程常用的npm命令详解
2018/06/15 Javascript
JS实现的tab页切换效果完整示例
2018/12/18 Javascript
JS双向链表实现与使用方法示例(增加一个previous属性实现)
2019/01/31 Javascript
通过循环优化 JavaScript 程序
2019/06/24 Javascript
Vue3.0 响应式系统源码逐行分析讲解
2019/10/14 Javascript
js动态生成表格(节点操作)
2021/01/12 Javascript
python用于url解码和中文解析的小脚本(python url decoder)
2013/08/11 Python
Python中用于检查英文字母大写的isupper()方法
2015/05/19 Python
centos6.7安装python2.7.11的具体方法
2017/01/16 Python
python3中的md5加密实例
2018/05/29 Python
浅析python 中大括号中括号小括号的区分
2019/07/29 Python
Python将string转换到float的实例方法
2019/07/29 Python
利用python绘制数据曲线图的实现
2020/04/09 Python
Python代码中如何读取键盘录入的值
2020/05/27 Python
大学生咖啡店创业计划书
2014/01/21 职场文书
大学生家政服务项目创业计划书
2014/01/30 职场文书
中学生获奖感言
2014/02/04 职场文书
2014年创先争优活动总结
2014/05/04 职场文书
大学毕业生自我鉴定范文
2019/06/21 职场文书
微信小程序和php的登录实现
2021/04/01 PHP