在一般php开发中,D函数与M函数用的时候作用感觉差不多的,都为实例化模型,实际上区别很大,个人以前认为主观区别只是D函数能够实现比M函数很多复杂的操作,M函数则适合实现一些简单的操作。后面知道个人观点有错误,实际D函数与M函数的区别如以下:假设有以下代码
class ManageUserModel extends Model{
public function index()
{
cookie('mainform_parameter', null);
$listarray["list"] = $this->ListBind();
$this->assign($listarray);// 赋值数据集
$this->assign($this->PowerBind());//绑定权限
$array["html"] = $this->fetch("content");
$this->assign($array);
$this->display("Public:page");
}
}
使用M函数实例化M("ManageUserModel")的作用相当于实例化Model模型类,而使用D函数实例化D("ManageUserModel")的作用相当于实例化ManageUserModel这个模型类,因为实例化模型的不同,D函数可以调用ManageUserModel里的方法,但是M函数不能调用ManageUserModel里的方法,所以实际操作时D函数能够实现ManageUserModel本模型较复杂的操作,而M函数就只能实现一些较为简单的操作。
附上:菜鸟教程所说明的两者区别,如图:
个人总结:在使用一些比较复杂的操作时,使用D函数;M函数则在使用一些简单的操作时使用。注重两者实例化模型的区别。