PHP头条
热点:

thinkphp中M方法的深入理解


在thinkphp教程中可能有m方法的讲解,对于此我个人认为里边的教程仅是交给了我们怎么去应用,没有让我们深入的去理解他写的方法:

在没有定义任何模型的时候,我们可以使用下面的方法实例化一个模型类来进行操作:
//实例化User模型
$User = M('User');
//执行其他的数据操作
$User->select();

这种方法最简单高效,因为不需要定义任何的模型类,所以支持跨项目调用。缺点也是因为没有自定义的模型类,因此无法写入相关的业务逻辑,只能完成基本的CURD操作。
thinkphp手册中对此只进行了简单的讲解,深刻的剖析是没有的,现在我们就来深入的理解一下

function M($name='', $tablePrefix='',$connection='') {
static $_model = array();//定义一个静态变量数组,
if(strpos($name,':')) {//检测是否存在':',来判断是否指定基础模型
list($class,$name) = explode(':',$name);//list函数将拆分的字符串分别赋值
}else{
$class = 'Model';
}
if (!isset($_model[$name . '_' . $class]))
$_model[$name . '_' . $class] = new $class($name,$tablePrefix,$connection);//检测之前是否已经存在这个模型,没有则将新定义的类模型存入静态变量中
return $_model[$name . '_' . $class];//将新定义的模型返回
}

www.phpzy.comtrue/phpkj/9838.htmlTechArticlethinkphp中M方法的深入理解 在thinkphp教程中可能有m方法的讲解,对于此我个人认为里边的教程仅是交给了我们怎么去应用,没有让我们深入的去理解他写的方法: 在没有定义任何模型的...

相关文章

相关频道:

PHP之友评论

今天推荐