thinkphp的快捷方法实例化对象

时间:2021-11-17 09:21:57

D、F、S、C、L、A、I 他们都在functions.php这个文件家
下面我分别说明一下他们的功能

D() 加载Model类
M() 加载Model类

A() 加载Action类
L() 获取语言定义
C() 获取配置值    用法就是   C("这里填写在配置文件里数组的下标")
S() 全局缓存配置 用法S(“这里相当于一个唯一的标识”)
F() 快速文件数据读取和保存 针对简单类型数据 字符串、数组
I()   快速创建一个对象实例

以上如果有遗漏的 内部函数

ThinkPHP值得大家学习的源码,特别是他们的中文注释让我们很容易就了解他源码中的内容

在用thinkphp做程序时经常能用到的内部函数,对于换成这一块用S()比较会减轻对数据库的负担!

在thinkphp中出了有内部还是,thinkphp还把配置文件保存为静态变量,在模板里方便快速调用

如果{$Thinkphp.config.参数名称}

如果主键是自动增长的,用add()的时候他会自动的返回一个插入新记录的ID值

我们在做用户金币或者是积分或者是投票的时候,需要对指定的字段自加1这时候我可以可以这样写

$s= D('admin');$s->score='(score+1)';$s->save(); 这样我们会剩下许多的步骤。

如果要修改指定的一个字段用简单的办法  D('admin')->setField('name','hehe','id=2');

D方法用于快速创建模型对象的实例,并且单例化,例如:

$User = D("User");

等效为

$User = new UserModel();

m实例化参数是数据库的表名.
d实例化的是你自己在model文件夹下面建立的模型文件.

D和M的区别主要在于:

M方法不需要创建模型类文件,M方法不会读取模型类,所以默认情况下自动验证是无效的,但是可以通过动态赋值的方式实现;

而D方法必须有创建模型类,我们可以用下面两种方法去创建一个数据表的映射对象

第一种:$Test = D('Test')

第二种:$Test = new Model('Test')

虽然这两种都可以对数据进行select,insert,delete,udpate操作,在数据验证上有很大的不同,用第一种方式实例一个模型就会有数据检查功能,如果 title 没有填写的话就会提示 “请输入标题” (这个是tp提供的一个自动验证功能,当然也需要在相应的model中定义好验证条件);

D方法可以自动检测模型类,不存在时他会抛出一个异常。同时对于已实例化得得模型不会再去重复实例化(单例)。

默认的D方法只能支持调用当前的项目(或者叫做应用)下的模型

例如:$user = new UserModel();

等价于$user = D('user');

如果实例化的是一个空模型

例如 $Demo = new Model();

那么它等价于 $Demo = M();