免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1217 | 回复: 0
打印 上一主题 下一主题

学习PHP5的面向对象的编程方法,原来的这段代码该如何修改? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2005-01-08 09:35 |只看该作者 |倒序浏览
原来在PHP4时代,一直采用面向过程的编程方法,这里举一个简单的例子,显示出员工信息。编码时采用了PHPLib的mysql操作类以及模板

类,因此程序页面文件分为show_staffinfo.php和show_staffinfo.html。代码如下
--------------show_staffinfo.php-----------------------
<?php
//引入phplib模板
include "../include/template.inc.php";
//数据库操作类
include "../include/db_mysql.inc.php";

$db=new DB_sql;
$db->;connect();
$db->;query("select id,name,telephone,address from staff";

//声明模板类。其中的参数是相对根目录的放模板文件的路径。
$t=new Template("template";
$t->;set_file("show_staffinfo","show_staffinfo.html";
$t->;set_block("show_staffinfo","row","rows";

while($db->;next_record()) {
        $t->;set_var("name",$db->;Record[name]);
        $t->;set_var("name",$db->;Record[telephone]);
        $t->;set_var("name",$db->;Record[address]);
        $t->;parse("rows","row",true);
}

$db->;free();

//分析输出模板
$t->;pparse("show_community","show_community";
?>;

--------------template/show_staffinfo.html-----------------------
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">;
<html XMLns="http://www.w3.org/1999/xhtml" >;
<head>;
<title>;显示员工信息页面</title>;
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />;
</head>;
<body background="#FFFFFF">;
<table border="0" cellpadding="2" cellspacing="1" style="border-collapse: collapse" bordercolor="#111111" width="100%">;
<tr>;
<td width="20%">;员工姓名</td>;
<td width="20%">;员工电话</td>;
<td width="60%">;家庭住址</td>;
</tr>;
<!-- BEGIN row -->;
<tr>;
<td>;{name}</td>;
<td>;{telephone}</td>;
<td>;{address}</td>;
</tr>;
<!-- END row -->;
</table>;
</body>;
</html>;
最近本人在学习PHP5的面向对象的编程方法,一直想把原来的代码进行修改,但是因为PHP5不支持多重继承,不能同时继承PHPlib的mysql操作

类和模板类,因此给代码的修改工作造成了困难
以下是我以面向对象的方式修改了半截的代码
<?php
include "../include/template.inc.php";
include "../include/db_mysql.inc.php";

class ShowCommunityDB extends DB_sql {
        function Show() {
                $this->;connect();
                $this->;query("select id,name,telephone,address from staff";
                while($this->;next_record()) {
                        echo $this->;Record[name]."-".$this->;Record[telephone]."-".$this->;Record[address]."<br>;";
                }
                $this->;free();
        }
}

$db=new ShowCommunityDB();
$db->;Show();
?>;
从上面的代码可以看到,我只能用echo $this->;Record[name]."-".$this->;Record[telephone]."-".$this->;Record[address]."<br>;";的简单

形式把数据显示出来,而不能想以前那样结合模板输出数据。请问大家如果我采用面向对象的编程方法,那么该如何修改我的代码呢?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP