热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

thinkphp中M方法的深入理解

在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];//将新定义的模型返回
}


推荐阅读
  • 本文旨在提供一套高效的面试方法,帮助企业在短时间内找到合适的产品经理。虽然观点较为直接,但其方法已被实践证明有效,尤其适用于初创公司和新项目的需求。 ... [详细]
  • 本文详细介绍了如何判断自己是否患有假胯宽,并提供了科学有效的改善方法,帮助您塑造更加优美的腿部线条。 ... [详细]
  • 如何将本地Docker镜像推送到阿里云容器镜像服务
    本文详细介绍将本地Docker镜像上传至阿里云容器镜像服务的步骤,包括登录、查看镜像列表、推送镜像以及确认上传结果。通过本文,您将掌握如何高效地管理Docker镜像并将其存储在阿里云的镜像仓库中。 ... [详细]
  • 查找最小值的操作是很简单的,只需要从根节点递归的遍历到左子树节点即可。当遍历到节点的左孩子为NULL时,则这个节点就是树的最小值。上面的树中,从根节点20开始,递归遍历左子 ... [详细]
  • 本文由杨勇和思远于2012年12月27日撰写,主要探讨了如何使用PHP进行网页内容抓取,特别是针对字符较多的网站。文章详细介绍了正则表达式失效的原因,并提供了优化方法,同时展示了如何抓取淘宝服饰栏、天气信息以及IP地址对应的地理位置。 ... [详细]
  • 本文详细介绍了如何在PHP中使用serialize()和unserialize()函数,以及它们在数据传输和存储中的应用。 ... [详细]
  • 在使用STM32Cube进行定时器配置时,有时会遇到延时不准的问题。本文探讨了可能导致延时不准确的原因,并提供了解决方法和预防措施。 ... [详细]
  • 本文探讨了大数据测试的最新进展,涵盖了数据采集、处理和分析的技术和方法。 ... [详细]
  • 阿里云ecs怎么配置php环境,阿里云ecs配置选择 ... [详细]
  • 本文介绍了MindManager在项目管理中的强大功能,特别是其内置的甘特图工具。通过该工具,用户可以轻松创建和管理项目计划,优化任务分配,并与其他软件无缝集成。 ... [详细]
  • 深入理解Lucene搜索机制
    本文旨在帮助读者全面掌握Lucene搜索的编写步骤、核心API及其应用。通过详细解析Lucene的基本查询和查询解析器的使用方法,结合架构图和代码示例,带领读者深入了解Lucene搜索的工作流程。 ... [详细]
  • 本文详细介绍了如何在《仁王》游戏中配置笔记本电脑的独立显卡,确保游戏性能优化。包括A卡和N卡的具体设置步骤。 ... [详细]
  • 探索厦门的地道美食
    厦门不仅以其美丽的自然风光和丰富的文化底蕴吸引着游客,更以种类繁多、风味独特的美食闻名。本文将带您了解厦门的特色小吃,让您在旅行中不仅能欣赏美景,还能大饱口福。 ... [详细]
  • ThinkPad USB 硬盘启动 Ubuntu 系统的详细步骤
    本文介绍如何通过USB硬盘在联想ThinkPad上启动Ubuntu系统,包括BIOS设置和启动优先级调整。 ... [详细]
  • 在项目部署后,Node.js 进程可能会遇到不可预见的错误并崩溃。为了及时通知开发人员进行问题排查,我们可以利用 nodemailer 插件来发送邮件提醒。本文将详细介绍如何配置和使用 nodemailer 实现这一功能。 ... [详细]
author-avatar
蓝天ab白云
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有