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表单提交表单名称含有点号(.)则会被转化为下划线(_)
Dec 14 PHP
php设计模式之观察者模式的应用详解
May 21 PHP
利用浏览器的Javascript控制台调试PHP程序
Jan 08 PHP
PHP结合jQuery.autocomplete插件实现输入自动完成提示的功能
Apr 27 PHP
百度地图经纬度转换到腾讯地图/Google 对应的经纬度
Aug 28 PHP
最准确的php截取字符串长度函数
Oct 29 PHP
Zend Framework动作助手FlashMessenger用法详解
Mar 05 PHP
postfixadmin忘记密码后的修改密码方法详解
Jul 20 PHP
Yii针对添加行的增删改查操作示例
Oct 18 PHP
PHP 类与构造函数解析
Feb 06 PHP
Laravel框架表单验证操作实例分析
Sep 30 PHP
PHP dirname(__FILE__)原理及用法解析
Oct 28 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编程最快明白》第三讲:php数组
2010/11/01 PHP
easyui的tabs update正确用法分享
2014/03/21 PHP
总结一些PHP中好用但又容易忽略的小知识
2017/06/02 PHP
PHP实现一维数组与二维数组去重功能示例
2018/05/24 PHP
php使用curl_init()和curl_multi_init()多线程的速度比较详解
2018/08/15 PHP
PHP单元测试配置与使用方法详解
2019/12/27 PHP
让firefox支持IE的一些方法的javascript扩展函数代码
2010/01/02 Javascript
JavaScript 弹出窗体点击按钮返回选择数据的实现
2010/04/01 Javascript
Javascript类库的顶层对象名用户体验分析
2010/10/24 Javascript
JavaScript Array Flatten 与递归使用介绍
2011/10/30 Javascript
jquery ajax提交整个表单元素的快捷办法
2013/03/27 Javascript
超级简单实现JavaScript MVC 样式框架
2015/03/24 Javascript
js中unicode转码方法详解
2015/10/09 Javascript
由简入繁实现Jquery树状结构的方法(推荐)
2016/06/10 Javascript
仅一个form表单 js实现注册信息依次填写提交功能
2016/06/12 Javascript
AnjularJS中$scope和$rootScope的区别小结
2016/09/18 Javascript
使用jquery如何获取时间
2016/10/13 Javascript
JavaScript中严格判断NaN的方法
2018/02/16 Javascript
js序列化和反序列化的使用讲解
2019/01/19 Javascript
js实现点击上传图片并设为模糊背景
2020/08/02 Javascript
Vue 实现拨打电话操作
2020/11/16 Javascript
Python标准库之collections包的使用教程
2017/04/27 Python
python深copy和浅copy区别对比解析
2019/12/26 Python
python 中的[:-1]和[::-1]的具体使用
2020/02/13 Python
Python图片处理模块PIL操作方法(pillow)
2020/04/07 Python
基于python实现音乐播放器代码实例
2020/07/01 Python
Django如何实现防止XSS攻击
2020/10/13 Python
python代码实现图书管理系统
2020/11/30 Python
BeautifulSoup获取指定class样式的div的实现
2020/12/07 Python
巧用 CSS3的webkit-box-reflect 倒影实现各类动效
2021/03/05 HTML / CSS
HTML5的新特性(1)
2016/03/03 HTML / CSS
摩飞电器俄罗斯官方网站:Morphy Richards俄罗斯
2020/07/30 全球购物
超市促销实习自我鉴定
2013/09/23 职场文书
网络教育自我鉴定
2013/11/01 职场文书
优秀学生干部事迹材料
2014/12/24 职场文书
观看建国大业观后感
2015/06/01 职场文书