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编程中字符串处理的5个技巧小结
Nov 13 PHP
php的curl实现get和post的代码
Aug 23 PHP
支持数组的ADDSLASHES的php函数
Feb 16 PHP
php中日期加减法运算实现代码
Dec 08 PHP
windows服务器中检测PHP SSL是否开启以及开启SSL的方法
Apr 25 PHP
PHP文件锁定写入实例解析
Jul 14 PHP
php使用ob_start()实现图片存入变量的方法
Nov 14 PHP
用PHP代码给图片加水印
Jul 01 PHP
WordPress主题制作中自定义头部的相关PHP函数解析
Jan 08 PHP
Kindeditor编辑器添加图片上传水印功能(php代码)
Aug 03 PHP
PHP注释语法规范与命名规范详解篇
Jan 21 PHP
PHP利用DWZ.CN服务生成短网址
Aug 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
PHP+JS+rsa数据加密传输实现代码
2011/03/23 PHP
php.ini修改php上传文件大小限制的方法详解
2013/06/17 PHP
Yii获取当前url和域名的方法
2015/06/08 PHP
php使用Jpgraph绘制饼状图的方法
2015/06/10 PHP
PHP中Closure类的使用方法及详解
2015/10/09 PHP
Yii输入正确验证码却验证失败的解决方法
2017/06/06 PHP
PHP echo()函数讲解
2019/02/15 PHP
JavaScript 应用技巧集合[推荐]
2009/08/30 Javascript
jQuery 操作option的实现代码
2011/03/03 Javascript
详解AngularJS中自定义过滤器
2015/12/28 Javascript
js ajaxfileupload.js上传报错的解决方法
2016/05/05 Javascript
轻松掌握JavaScript单例模式
2016/08/25 Javascript
JS实现动态添加DOM节点和事件的方法示例
2017/04/28 Javascript
Vue resource中的GET与POST请求的实例代码
2017/07/21 Javascript
JS随机排序数组实现方法分析
2017/10/11 Javascript
JavaScript实现微信号随机切换代码
2018/03/09 Javascript
解决vue 路由变化页面数据不刷新的问题
2018/03/13 Javascript
vue实现学生录入系统之添加删除功能
2018/07/11 Javascript
浅谈对于“不用setInterval,用setTimeout”的理解
2019/08/28 Javascript
JavaScript遍历数组的方法代码实例
2020/01/14 Javascript
JS实现TITLE悬停长久显示效果完整示例
2020/02/11 Javascript
在vue中使用Base64转码的案例
2020/08/07 Javascript
JavaScript代码实现微博批量取消关注功能
2021/02/05 Javascript
[53:15]2018DOTA2亚洲邀请赛3月29日 小组赛A组 LGD VS TNC
2018/03/30 DOTA
Python的Flask框架中Flask-Admin库的简单入门指引
2015/04/07 Python
详解Python中用于计算指数的exp()方法
2015/05/14 Python
dataframe设置两个条件取值的实例
2018/04/12 Python
tensorflow 重置/清除计算图的实现
2020/01/19 Python
如何在mac下配置python虚拟环境
2020/07/06 Python
html5文字阴影效果text-shadow使用示例
2013/07/25 HTML / CSS
计算机专业职业生涯规划范文
2014/01/19 职场文书
公司副总经理岗位职责
2014/10/01 职场文书
会议接待欢迎词范文
2015/01/26 职场文书
联欢会开场白
2015/06/01 职场文书
干部理论学习心得体会
2016/01/21 职场文书
Golang中channel的原理解读(推荐)
2021/10/16 Golang