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

A() 加载Action类

D() 加载Model类

S()全局缓存配置

L() 获取语言定义

C() 获取配置值

F()快速文件数据读取和保存 针对简单类型数据 字符串、数组

I( ) 快速创建一个对象实例

1.A快速创建Action对象

$action = new UserAction();// 等同于以下写法:

$action = A("User");

而且,如果当前的UserAction类还没有引入的话,A方法会自动引入。并且具有单例模式的支持,不会重复创建相同的Action对象。

A方法支持跨项目调用,例如:

$action = A("User",'Admin'); //实例化Admin项目的UserAction类

再例如我们的程序有2个Action分别是IndexAction和TestAction,在 IndexAction中有个myHello方法能够输出hello world,如果我也想在TestAction中也输出同样一段文字怎么办?最原始的方法首先我们导入IndexAction.class.php这个文件,然后new IndexAction,最后调用myHello方法才行。 代码一般为:

PHP代码

<?php

import("@.Action.Index");

//导入本项目目录下Action目录下的Index.class.php文件。

class TestAction extends Action{

public function index()

{

$index=new IndexAction();//实例化IndexAction

echo $index->myHello();//调用myHello()方法

}

}

?>

那么,如果我们用A函数,怎么写呢?PHP代码

<?php

class TestAction extends Action{

public function index()

{

$index=A("Index");

echo $index->myHello();

}

}

?>

呵呵,少写很多代码吧。当然,这还不是最偷懒的方法,请看下边的R()函数,就知道什么是偷懒的极致了。

来源:(http://blog.sina.com.cn/s/blog_4ecffb300100jbnj.html) - Thinkphp 单字母内部函数

ADSLCFI_lynne_新浪博客

2:B函数

这是随着行为应运而生的新生函数,可以执行某个行为,例如B('app_begin');执行这个行为定义的所有函数,支持2个参数,第二个参数支持需要接受一个数组,例如

B('app_begin',array("name"=& gt;"tdweb","time"=>time()));这样。

3:C函数

获取配置值,这个大家用的应该不少。虽然使用方便,但是C函数无疑是一个非常强大的函数。 获取值:

获取所有设置:C(); 不传递任何参数,返回一个包含所有设置的数组。

获取指定配置:C('URL_MODEL') 这样就能得到URL_MODEL的配置信息

获取指定二维数组配置:C("array.name"),这样就返回数组array下的key为name所对应的值

设置值:为二维数组赋值C("array.name","value"),原理同上(获取array.name的值),后边的value是值面向

批量赋值:

$test=array("URL_MODEL"=>1,"THIN_MODEL"=>true");

C($test);

这样直接将数组里的值赋值了

判断是否赋值:

C("?URL_MODEL")这样前边加个"?",如果已经赋值,则返回true

如果想改就永久更改,那么需要配合F函数,将配置文件写入config.php才行。

4: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的记录

5.S快速操作缓存方法

ThinkPHP把各种缓存方式都抽象成统一的缓存类来调用,而且ThinkPHP把所有的缓存机制统一成一个S方法来进行操作,所以在使用

不同的缓存方式的时候并不需要关注具体的缓存细节。如:

S('data',$Data); //使用data标识缓存$Data数据

S('data',$Data,3600); //缓存$Data数据3600秒

$Data = S('data'); //获取缓存数据

S('name',null); // 删除缓存标识name

6.L快速操作语言变量

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

L(‘USER_INFO’,’用户信息’); //设置名称为USER_INFO 的语言变量

L(‘USER_INFO’); // 获取USER_INFO的语言变量值

//批量赋值

$array[‘USER_INFO’] = ‘用户信息’;

$array[‘ERROR_INFO’] = ‘错误信息’;

L($array);

7.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');

8. F 文件数据保存方法

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

F方法使用了var_export方法,所以只能支持简单数据类型,不支持对象的缓存

9:R函数

还记得我们的A函数吧,如果仅仅想执行某个方法,其实用R函数更方便,刚才的可以替换成PHP代码

<?php

class TestAction extends Action{

public function index()

{

$index=R("Index","myHello");

echo $index;

}

}

?>

ThinkPhp单字母函数的更多相关文章

  1. Thinkphp单字母函数使用指南

    Thinkphp单字母函数使用指南A方法A方法用于在内部实例化控制器,调用格式:A('[项目://][分组/]模块','控制器层名称')最简单的用法: $User = A('User'); 复制代码 ...

  2. ThinkPHP单字母函数(快捷方法)使用总结

    在ThinkPHP中有许多使用简便的单字母函数(即快捷方法),可以很方便开发者快速的调用,但是字母函数却不方便记忆,本文将所有的字母函数总结一下,以方便以后查找. 1.U() URL组装 支持不同UR ...

  3. thinkphp 单字母函数

    在ThinkPHP中有许多使用简便的单字母函数(即快捷方法),可以很方便开发者快速的调用,但是字母函数却不方便记忆,本文将所有的字母函数总结一下,以方便以后查找. 1.U() URL组装 支持不同UR ...

  4. ThinkPHP 单字母函数整理

    TP所有单独的函数,除了两个用来生成项目的buildAppDir之类的,其余都在框架目录/Common/functions.php这个文件里. A函数(基本是Action的简写) A函数是用来实例化我 ...

  5. Thinkphp的单字母函数整理

    有人不太喜欢TP这种单字母函数,其实这也是TP的一个特色,如果理解了这些函数的作用,不管是背,还是写,都是非常方便的,接下来我们以字母顺序开始.A函数 B函数 C函数 D函数 F函数 L函数 R函数 ...

  6. TP3.2单字母函数

    A方法 A方法用于在内部实例化控制器 调用格式:A(‘[项目://][分组/]模块’,’控制器层名称’) 最简单的用法: $User = A('User'); 表示实例化当前项目的UserAction ...

  7. ThinkPHP5 为什么取消了单字母函数?

    ThinkPHP5 为什么取消了单字母函数? 更容易理解. 理加规范. 个人喜好. 比如 TPShop 也是用 ThinkPHP5 又加回单字母函数. [话唠]教练,我想做菜-长沙 2018/10/8 ...

  8. ThinkPHP3.1.3的单字母函数汇总

    A函数: 用于实例化Action 格式:[项目://][分组/]模块 /** * A函数用于实例化Action 格式:[项目://][分组/]模块 * @param string $name Acti ...

  9. TP5 助手函数与TP3.2单字母函数

    一.TP5 助手函数 助手函数 描述 abort 中断执行并发送HTTP状态码 action 调用控制器类的操作 cache 缓存管理 config 获取和设置配置参数 controller 实例化控 ...

随机推荐

  1. Objective-C学习笔记-第四天(1)

    解决以下昨天遇到的问题 1.@class与import是怎么样的呢?参考:http://www.cnblogs.com/ios8/p/ios-oc-test.html 在头文件中, 一般只需要知道被引 ...

  2. MVC 请求处理流程(一)

    路由系统先获取路由数据,在实现了IHttpModule接口的UrlRoutingModule对象中通过注册HttpApplication的PostResolveRequestCache来解析路由数据并 ...

  3. Tabbed Activity的使用(Fragment)

    1,首先file -> new -> Activity -> Tabbed Activity 2,创建完成后,发现会自动的创建一大堆代码,大部分我们是不需要关心的,关于页面切换的代码 ...

  4. nodejs入门 SSH服务器远程部署nodejs2

    服务器安装nodejs昨天好像出了点问题 今天参考的链接是http://nodejs.cn/download/package-manager/#debian-and-ubuntu-based-linu ...

  5. HDU2544 最短路dij

    纯最短路. ///HDU 2544堆优化的最短路 #include <cstdio> #include <iostream> #include <sstream> ...

  6. 基于vue2.0的分页组件开发

    今天安排的任务是写基于vue2.0的分页组件,好吧,我一开始是觉得超级简单的,但是越写越写不出来,写的最后乱七八糟的都不知道下句该写什么了,所以重新捋了思路,小结一下- 首先写组件需要考虑: 要从父组 ...

  7. WCF XmlSerializer GetType 反射类型 报错 解决方案

    为图省事,用现有的EF,和web一起使用一个Model类 当进行到 XmlSerializer xmlSerializer = new XmlSerializer(obj.GetType()); 会报 ...

  8. 修改SharePoint 2013中item Created by 信息

    因为公司的系统有点小bug.额,要做点坏事,把系统没记上的东西偷偷补上去,但是item的created by变成了我(这怎么行,不能让别人知道我做了坏事,一定是隔壁小李干的! 懒得开visual st ...

  9. setInterval和setTimeout

    setTimeout和setInterval的基本用法我们不谈,无非是1.指定延迟后调用函数,2.以指定周期调用函数 让我们想象一个意外情况,比如说下面的setInterval setInterval ...

  10. 黑马----JAVA泛型基础

    黑马程序员:Java培训.Android培训.iOS培训..Net培训 JAVA范型-基础 一.泛型的概念 1.实现了参数化类型 2.用于编写可应用于多种类型的代码,即所编写的代码可应用于许多许多的类 ...