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 相关文章推荐
5.PHP的其他功能
Oct 09 PHP
php生成EXCEL的东东
Oct 09 PHP
PHP学习笔记 用户注册模块用户类以及验证码类
Sep 20 PHP
php读取csv文件并输出的方法
Mar 14 PHP
php中file_exists函数使用详解
May 08 PHP
php对二维数组进行相关操作(排序、转换、去空白等)
Nov 04 PHP
Yii2框架引用bootstrap中日期插件yii2-date-picker的方法
Jan 09 PHP
PHP的Yii框架中View视图的使用进阶
Mar 29 PHP
PHP开发中csrf攻击的简单演示和防范
May 07 PHP
ThinkPHP框架表单验证操作方法
Jul 19 PHP
Laravel第三方包报class not found的解决方法
Oct 13 PHP
php和js实现根据子网掩码和ip计算子网功能示例
Nov 09 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 分页类(模仿google)-面试题目解答
2009/09/13 PHP
jquery操作select详解(取值,设置选中)
2014/02/07 Javascript
JS是按值传递还是按引用传递
2015/01/30 Javascript
javascript操作select元素实例分析
2015/03/27 Javascript
JavaScript动态改变表格单元格内容的方法
2015/03/30 Javascript
TypeError document.getElementById(...) is null错误原因
2015/05/18 Javascript
$.extend 的一个小问题
2015/06/18 Javascript
jQuery实现的网页竖向菜单效果代码
2015/08/26 Javascript
JavaScript实现带箭头标识的多级下拉菜单效果
2015/08/27 Javascript
D3.js实现折线图的方法详解
2016/09/21 Javascript
jQuery实现动态添加节点与遍历节点功能示例
2017/11/09 jQuery
p5.js 毕达哥拉斯树的实现代码
2018/03/23 Javascript
JS实现的Object数组去重功能示例【数组成员为Object对象】
2019/02/01 Javascript
JQuery特殊效果和链式调用操作示例
2019/05/13 jQuery
基于vue-cli搭建多模块且各模块独立打包的项目
2019/06/12 Javascript
vuex实现数据状态持久化
2019/11/11 Javascript
[55:44]OG vs NAVI 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/17 DOTA
Python基于smtplib实现异步发送邮件服务
2015/05/28 Python
总结网络IO模型与select模型的Python实例讲解
2016/06/27 Python
python中实现指定时间调用函数示例代码
2017/09/08 Python
Python读取视频的两种方法(imageio和cv2)
2018/04/15 Python
在Mac下使用python实现简单的目录树展示方法
2018/11/01 Python
flask-restful使用总结
2018/12/04 Python
python之cv2与图像的载入、显示和保存实例
2018/12/05 Python
python分块读取大数据,避免内存不足的方法
2018/12/10 Python
Python学习笔记之迭代器和生成器用法实例详解
2019/08/08 Python
详解Django配置优化方法
2019/11/18 Python
python3+selenium获取页面加载的所有静态资源文件链接操作
2020/05/04 Python
Django model.py表单设置默认值允许为空的操作
2020/05/19 Python
用Python进行websocket接口测试
2020/10/16 Python
Selenium执行完毕未关闭chromedriver/geckodriver进程的解决办法(java版+python版)
2020/12/07 Python
jupyter notebook更换皮肤主题的实现
2021/01/07 Python
Expedia意大利旅游网站:酒店、机票和租车预订
2017/10/30 全球购物
公司营业员的工作总结自我评价
2013/10/05 职场文书
建房协议书
2014/04/11 职场文书
干部作风建设个人剖析材料
2014/10/11 职场文书