tp3的单字母函数

A

实例化控制器
比如:我有两个控制器,在第一个控制器中想用第二个控制器的方法,你可以这样:

$User = A('User');
echo $User->method();

A函数来实例化一个User控制器,然后你就可以使用这个控制器里面的方法了

R

R方法用于调用某个控制器的操作方法,是A方法的进一步增强和补充
上面A方法中的例子可以写成:

$User = R("User","method");
echo $User;

C

C方法是tp中用来设置、获取、保存配置参数的方法。

设置

C(“参数名字“,值)

获取

C(参数名称)

参数名称不填,代表获取所有

D

和A函数类似,如果不使用D函数,就需要导入Model,然后new Model,剩下都是一样的。

但是D函数有2个有点,一是如果之前实例化过这个Model,那么就不再实例化了,剩资源;二是方便调试,如果不存在 这个Model,会抛出TP异常,非常人性化。

如果访问本项目的Model直接D("Model名称");就可以了,如果打算跨项目访问,就使用D("Model名称","项目名称");其他的就没什么说的了

M

M方法用于实例化一个基础模型类
M方法的调用格式:

M('[基础模型名:]模型名','数据表前缀','数据库连接信息')

1. 实例化基础模型类

//实例化User模型
$User = M('User');
//执行其他的数据操作
$User->select();

$User = M('User');等效于$User = new Model('User');,表示操作user表

M和D的区别

  1. 不需要自定义模型类,减少IO加载,性能较好。
  2. 实例化后只能调用基础模型类(默认是Model类)。
  3. 可以在实例化的时候指定表前缀、数据库和数据库的连接信息。

D方法的强大体现在你封装的自定义模型类有多强;随着新版tp框架基础模型类的功能越来越强大,M方法也比D方法越来越实用。

F

仅用于简单数据缓存,并且只能支持文件形式,不支持缓存有效期,因为采用的是PHP返回方式,所以其效率较S方法较高,因此我们也称之为快速缓存方法。
###F方法的特点是:

  1. 简单数据缓存;
  2. 文件形式保存;
  3. 采用PHP返回数据方式加载缓存;
  4. 支持子目录缓存以及自动创建;
  5. 支持删除缓存和批量删除;

写入和读取缓存

F('data','test data');

默认的保存起始路径是DATA_PATH(该常量在默认配置位于RUNTIME_PATH.'Data/'下面),也就是说会生成文件名为DATA_PATH.'data.php'的缓存文件。

注意:确保你的缓存标识的唯一,避免数据覆盖和冲突。

下次读取缓存数据的时候,使用:

$Data = F('data');

我们可以采用子目录方式保存,例如:

F('user/data',$data); // 缓存写入
F('user/data'); // 读取缓存

就会生成DATA_PATH.'user/data.php'缓存文件,如果user子目录不存在的话,则会自动创建,也可以支持多级子目录,例如:

F('level1/level2/data',$data);

如果需要指定缓存的起始目录,可以用下面的方式:

F('data',$data,TEMP_PATH);

获取的时候则需要使用:

F('data','',TEMP_PATH);

删除缓存

删除缓存也很简单,使用:

F('data',NULL); 

第二个参数传入NULL,则表示删除标识为data的数据缓存。
支持批量删除功能,尤其是针对子目录缓存的情况,假设我们要删除user子目录下面的所有缓存数据,可以使用:

F('user/*',NULL);

又或者使用过滤条件删除,例如:

F('user/[^a]*',NULL);

S

thinkPHP的F方法只能用于缓存简单数据类型,不支持有效期和缓存对象。S()缓存方法支持有效期,又称动态缓存方法
用法:

设置

S('data','内容');

设置带有效期的

S('data','内容',100);//第三个参数是时间,单位秒

读取

$data = S('data');

删除

S('data',null);

U

U方法用于完成对URL地址的组装,特点在于可以自动根据当前的URL模式和设置生成对应的URL地址,格式为:

U('地址','参数','伪静态','是否跳转','显示域名');

模板中使用U方法而不是固定写死URL地址的好处在于,一旦你的环境变化或者参数设置改变,你不需要更改模板中的任何代码。
在模板中的调用格式需要采用 {:U('地址', '参数'…)}的方式

传参

这三种都是可以的,等效

U('Blog/cate',array('cate_id'=>1,'status'=>1))
U('Blog/cate','cate_id=1&status=1')
U('Blog/cate?cate_id=1&status=1')

N

N方法属于计数器方法,被用于核心的查询、缓存统计的计数和统计。但是其实可以用于应用的其他计数用途,用法比较简单,调用格式:

N('计数位置'[,'步进值'],[是否缓存])
N('read',1,true);
var_dump(N('read'));

当第三个参数为true时,计数会被缓存,否则不会带入下次统计。

G

G方法的作用包括标记位置和区间统计两个功能,取代的是debug_start、debug_end方法甚至Debug类才能完成的功能

标记位置

G('tag');

这就是把当前位置标记为tag标签

运行时间统计

G('begin');
// ...其他代码段
G('end');
// ...也许这里还有其他代码
// 进行统计区间
echo G('begin','end').'s';

G('begin','end')表示统计begin位置到end位置的执行时间(单位是秒),begin必须是一个已经标记过的位置,如果这个时候end位置还没被标记过,则会自动把当前位置标记为end标签。
结果:0.0056s
默认统计精度是小数点后4位,如果需要可以这样设置:

G('begin','end',6).'s';//0.005587s

运行时内存开销统计

如果你的环境支持内存占用统计的话,还可以使用G方法进行区间内存开销统计(单位为kb)

echo G('begin','end','m').'kb';

第三个参数使用m表示进行内存开销统计,输出的结果可能是:625kb

同样,如果end标签没有被标记的话,会自动把当前位置先标记位end标签。
如果环境不支持内存统计,则该参数无效,仍然会进行区间运行时间统计。

I

用于更加方便和安全的获取系统输入变量,用法格式:

I('变量类型.变量名',['默认值'],['过滤方法'])

变量类型

变量类型含义
get获取get参数
post获取post参数
param自动判断请求类型获取get、post、put参数
request获取request参数
put获取put参数
session获取$_SESSION参数
cookie获取$_COOKIE参数
server获取$_SERVER参数
global获取$GLOBAL参数

注意:变量类型不区分大小写,但变量名严格区分大小写 默认值和过滤方法均属于可选参数。

用法:

常规获取

echo I('get.id'); // 相当于 $_GET['id']
echo I('get.name'); // 相当于 $_GET['name']

默认值

echo I('get.id',0); // 如果不存在则返回0

方法过滤

echo I('get.name','','htmlspecialchars'); // 采用htmlspecialchars方法对$_GET['name'] 进行过滤,如果不存在则返回空字符串

获取整个变量

I('get.'); // 获取整个$_GET 数组
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

苦夏木禾

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值