0

0

Thinkphp 内部函数 ADSLCFUI 快捷方法全解析_PHP教程

php中文网

php中文网

发布时间:2016-07-13 10:31:00

|

1259人浏览过

|

来源于php中文网

原创

ThinkPHP为一些常用的操作定义了快捷方法,这些方法具有单字母的方法名,具有比较容易记忆的特点。非常有意思的是,这些快捷方法的字母包含了ADSL字母,所以我们称之为ADSL方法。A、D、S、L、C、F、U、I 这几个快捷方法都在 /THINKPHP/Common/functions.php 这个文件中,下面我分别说明一下他们各自的功能和用法。

A() 加载Action类
D() 加载Model类
S() 全局缓存配置
L() 获取语言定义
C() 获取配置值
F() 快速文件数据读取和保存 针对简单类型数据 字符串、数组
U() 用于完成对URL地址的组装
I() 快速创建一个对象实例

1.A 快速创建Action对象

$action=new UserAction();// 等同于以下写法:$action=A("User");而且,如果当前的UserAction类还没有引入的话,A方法会自动引入。并且具有单例模式的支持,不会重复创建相同的Action对象。

A方法支持跨项目调用,例如:
 
$action=A("User",'Admin'); //实例化Admin项目的UserAction类

2.D 快速创建模型数据对象
 
先定义好模型类,如UserModel,然后就可以用D()函数对数据进行操作了。例如:
 
先在"你的项目"/Lib/Model下建立一个名为UserModel.class.php的PHP脚本,内容如下:
 
class UserModel extends Model{}

然后,无需增加任何属性和方法,就可以进行如下操作:
 
$User=D("User"); //实例化User对象,User是你在数据库建立的一个名为"前缀_user"的数据表,也可以用$User=new UserModel()代替,进行实例化对象的操作。实例化之后,就可以对数据进行增删查改等一系列操作了,如:
 
$User->find(1); //查找主键为1的记录

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

立即学习PHP免费学习笔记(深入)”;

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

如果要修改指定的一个字段更可以简写为如下:

D('User')->setField('name','hehe','id=2');

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();
 
3.S 快速操作缓存方法
 
ThinkPHP把各种缓存方式都抽象成统一的缓存类来调用,而且ThinkPHP把所有的缓存机制统一成一个S方法来进行操作,所以在使用不同的缓存方式的时候并不需要关注具体的缓存细节。如:

S('data',$Data); //使用data标识缓存$Data数据
S('data',$Data,3600); //缓存$Data数据3600秒
$Data=S('data'); //获取缓存数据
S('name',null); // 删除缓存标识name
 
4.L 快速操作语言变量

L方法提供了多语言的支持,可以快速设置和获取语言定义。

L('USER_INFO','用户信息'); //设置名称为USER_INFO 的语言变量
L('USER_INFO'); //获取USER_INFO的语言变量值
//批量赋值
$array['USER_INFO']='用户信息';$array['ERROR_INFO']='错误信息';
L($array);

5.C 快速操作配置变量,用法就是 C("这里填写在配置文件里数组的下标")

C('USER_AUTH_ON',true); //设置名称为USER_AUTH_ON 的配置参数
C('USER_AUTH_ON'); //获取USER_AUTH_ON的变量值

同L一样,C也支持批量赋值
 
注意:配置参数不区分大小写

此外从1.5版本开始,C方法还支持二维数组的操作,例如:
 
C('USER.USER_TYPE',1);
C('USER.USER_AUTH_ON');  

6. F 文件数据保存方法

F方法主要用于项目的文件数据的写入、更改和删除,其工作机理和S方法是类似的,区别在于用途不同,数据保存的目录也不同,而且不能指定缓存方式,因为默认就是文件形式保存数据。F方法使用了var_export方法,所以只能支持简单数据类型,不支持对象的缓存。

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

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

U方法的用法示例:

U('User/add') // 生成User模块的add操作地址

也可以支持分组调用:

U('Home/User/add') // 生成Home分组的User模块的add操作地址

当然,也可以只是写操作名,表示调用当前模块的

U('add') // 生成当前访问模块的add操作地址

除了分组、模块和操作名之外,我们也可以传入一些参数:

U('Blog/read?id=1') // 生成Blog模块的read操作 并且id为1的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')

您可能感兴趣的文章

  • PHP中的字符串处理函数(String Functions) 全总结
  • PHP 生成连续的数字(字母)数组函数range()分析,PHP抽奖程序函数
  • thinkphp 的 Action 控制器中的系统常量总结
  • php中在变量和函数前加static关键字之后的区别
  • PHP filter_var() 函数 Filter 函数
  • PHP压缩html网页代码减小网络数据传输量,清除空格,制表符,注释标记
  • thinkphp自动验证与自动填充无效的解决办法
  • 在php中分别使用curl的post提交数据的方法和get获取网页数据的方法总结

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/764160.htmlTechArticleThinkPHP为一些常用的操作定义了快捷方法,这些方法具有单字母的方法名,具有比较容易记忆的特点。非常有意思的是,这些快捷方法的字...

相关文章

PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
pixiv网页版官网登录与阅读指南_pixiv官网直达入口与在线访问方法
pixiv网页版官网登录与阅读指南_pixiv官网直达入口与在线访问方法

本专题系统整理pixiv网页版官网入口及登录访问方式,涵盖官网登录页面直达路径、在线阅读入口及快速进入方法说明,帮助用户高效找到pixiv官方网站,实现便捷、安全的网页端浏览与账号登录体验。

463

2026.02.13

微博网页版主页入口与登录指南_官方网页端快速访问方法
微博网页版主页入口与登录指南_官方网页端快速访问方法

本专题系统整理微博网页版官方入口及网页端登录方式,涵盖首页直达地址、账号登录流程与常见访问问题说明,帮助用户快速找到微博官网主页,实现便捷、安全的网页端登录与内容浏览体验。

135

2026.02.13

Flutter跨平台开发与状态管理实战
Flutter跨平台开发与状态管理实战

本专题围绕Flutter框架展开,系统讲解跨平台UI构建原理与状态管理方案。内容涵盖Widget生命周期、路由管理、Provider与Bloc状态管理模式、网络请求封装及性能优化技巧。通过实战项目演示,帮助开发者构建流畅、可维护的跨平台移动应用。

64

2026.02.13

TypeScript工程化开发与Vite构建优化实践
TypeScript工程化开发与Vite构建优化实践

本专题面向前端开发者,深入讲解 TypeScript 类型系统与大型项目结构设计方法,并结合 Vite 构建工具优化前端工程化流程。内容包括模块化设计、类型声明管理、代码分割、热更新原理以及构建性能调优。通过完整项目示例,帮助开发者提升代码可维护性与开发效率。

20

2026.02.13

Redis高可用架构与分布式缓存实战
Redis高可用架构与分布式缓存实战

本专题围绕 Redis 在高并发系统中的应用展开,系统讲解主从复制、哨兵机制、Cluster 集群模式及数据分片原理。内容涵盖缓存穿透与雪崩解决方案、分布式锁实现、热点数据优化及持久化策略。通过真实业务场景演示,帮助开发者构建高可用、可扩展的分布式缓存系统。

26

2026.02.13

c语言 数据类型
c语言 数据类型

本专题整合了c语言数据类型相关内容,阅读专题下面的文章了解更多详细内容。

29

2026.02.12

雨课堂网页版登录入口与使用指南_官方在线教学平台访问方法
雨课堂网页版登录入口与使用指南_官方在线教学平台访问方法

本专题系统整理雨课堂网页版官方入口及在线登录方式,涵盖账号登录流程、官方直连入口及平台访问方法说明,帮助师生用户快速进入雨课堂在线教学平台,实现便捷、高效的课程学习与教学管理体验。

14

2026.02.12

豆包AI网页版入口与智能创作指南_官方在线写作与图片生成使用方法
豆包AI网页版入口与智能创作指南_官方在线写作与图片生成使用方法

本专题汇总豆包AI官方网页版入口及在线使用方式,涵盖智能写作工具、图片生成体验入口和官网登录方法,帮助用户快速直达豆包AI平台,高效完成文本创作与AI生图任务,实现便捷智能创作体验。

524

2026.02.12

PostgreSQL性能优化与索引调优实战
PostgreSQL性能优化与索引调优实战

本专题面向后端开发与数据库工程师,深入讲解 PostgreSQL 查询优化原理与索引机制。内容包括执行计划分析、常见索引类型对比、慢查询优化策略、事务隔离级别以及高并发场景下的性能调优技巧。通过实战案例解析,帮助开发者提升数据库响应速度与系统稳定性。

53

2026.02.12

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号