◆◇MVC模式:欢迎新手进来学习,老手进来探讨◆◇ mysql_select_db($db,$this->db);中,$db代表数据库名称!!$this->db又代表数据库连接!!第一个问题我已经找到答案!!但第二个问题怎么没人来回答呢?? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 1、这里我有一个疑问:mysql_select_db($db,$this->db);中,$db代表什么?$this->db又代表什么?它们有什么区别?很明显,代码中有$this->db=mysql_pconnect($host,$user,$pass);这个$this->db是到mysql的连接,通常写作$conn而$db表示数据库名通常写作$dbname可见这个代码可读性不强2、这里我有一个疑问:$this->dao = &$dao;这里的&$dao是不是代表$dao的内存地址?如果是在这里操作它的内存地址有什么作用?& 传引用这段代码中 function ProductModel(&$dao) { $this->dao = &$dao; }既然已有ProductModel(&$dao)的声明,那么就不需要再$this->dao = &$dao;了直接$this->dao = $dao;就可以了这个$dao是一个对象,只有php4才需要声明传递方式,在php5中已经是传引用了至于传值和传引用的区别,请认真看一下手册! $this->dao = &$dao;是把$dao这数据库操作对象在内存的地址赋值给$this->dao变量,避免再次生成新的数据库操作对象,使用$this->dao相当于引用$dao。说得不好敬请谅解 这里我有一个疑问:mysql_select_db($db,$this->db);中,$db代表什么?$this->db又代表什么?它们有什么区别?$db代表你将选择的数据库名$this->db 代表你的数据连接的名称,一个代号而已在手册中很详细。$this->dao = &$dao;这里的&$dao是不是代表$dao的内存地址?如果是在这里操作它的内存地址有什么作用?这个跟C语言里面的指针有点一样,都是引用,但是本质不一样 谢谢诸位棒艮。:)请不要走开,问题马上:控制器类:Controller<?class ProductController extends ProductView { function ProductController(&$model,$getvars=null) { ProductView::ProductView($model); $this->header(); switch ($getvars['view']) { case "product": $this->productItem($getvars['id']); break; default: if(empty($getvars['rownum'])) { $this->productTable(); } else { $this->productTable($getvars['rownum']); } break; } $this->footer(); }}?>这里ProductView::ProductView($model);中的::符号代表什么意思??谢谢 ::作用是类似c++那样调用类静态方法在这里ProductView::ProductView($model);避免生成ProductView对象,直接调用ProductView方法 控制器类:Controller是作为包含跳转用吧。这样不知行不行switch($_GET['Module']) { case "Search": include_once("./search.php"); break; case "Ads": include_once("./Ads.php"); break; default: if(empty($getvars['rownum'])) { $this->productTable(); } else { $this->productTable($getvars['rownum']); } break; } 其实模块部分是主的。就是VEIW部分 看看CTB文本论坛或IPB论坛,它们基本是用MVC实现的. 我看过好多国外的程序,数据库操作都是dao,dao是什么的缩写,谁知道,谢谢。 DAO =>data access object数据访问对象. MVC我还没有接触过,很想看看 MVC全面向对象的语言里用的最多。 5.2X中正常5.3.3出错一个数组的问题?? 局域网内数据库备份?? PHP+MYSQL。 PHP如何判断 mysql的 select查询返回值是空的啊?? PHP下载图片 关于分组显示问题 求助,关于PHP编写网页挂机程序 php 群发email问题。 如何实现网业的自动加1?在线等待中。。。 请问PHP支持web service吗? 请问关于informix数据库的问题 为什么我在类里写的回调函数调用的时候出错了??? [问题]在线打开pdf或者word文档,这样才能加快打开速度
很明显,代码中有
$this->db=mysql_pconnect($host,$user,$pass);
这个$this->db是到mysql的连接,通常写作$conn
而$db表示数据库名通常写作$dbname
可见这个代码可读性不强2、这里我有一个疑问:$this->dao = &$dao;这里的&$dao是不是代表$dao的内存地址?如果是在这里操作它的内存地址有什么作用?
& 传引用
这段代码中
function ProductModel(&$dao) {
$this->dao = &$dao;
}
既然已有ProductModel(&$dao)的声明,那么就不需要再$this->dao = &$dao;了
直接$this->dao = $dao;就可以了
这个$dao是一个对象,只有php4才需要声明传递方式,在php5中已经是传引用了至于传值和传引用的区别,请认真看一下手册!
<?
class ProductController extends ProductView {
function ProductController(&$model,$getvars=null) {
ProductView::ProductView($model);
$this->header();
switch ($getvars['view']) {
case "product":
$this->productItem($getvars['id']);
break;
default:
if(empty($getvars['rownum'])) {
$this->productTable();
} else {
$this->productTable($getvars['rownum']);
}
break;
}
$this->footer();
}
}
?>这里ProductView::ProductView($model);中的::符号代表什么意思??谢谢
这样不知行不行
switch($_GET['Module']) {
case "Search":
include_once("./search.php");
break; case "Ads":
include_once("./Ads.php");
break;
default:
if(empty($getvars['rownum'])) {
$this->productTable();
} else {
$this->productTable($getvars['rownum']);
}
break;
}
data access object
数据访问对象.