ThinkPHP 3.* 内置函数(单字母函数)

单字母函数D、F、S、C、L、A、I 他们都在ThinkPHP核心的ThinkPHP/Mode/Api/functions.php这个文件中定义。

有几个常用的,下面我分别说明一下他们的功能:

D() 加载Model类

M() 加载Model类

A() 加载Action类

L() 获取语言定义

C() 获取配置值 用法就是 C("这里填写在配置文件里数组的下标")

S() 全局缓存配置 用法S(“这里相当于一个唯一的标识”)

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

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

下面详细是ThinkPHP中单字母函数的详解:

A函数: 用于实例化Action 格式:[项目://][分组/]模块

/** 
* A函数用于实例化Action 格式:[项目://][分组/]模块 
* @param string $name Action资源地址 
* @param string $layer 控制层名称 
* @param boolean $common 是否公共目录 
* @return Action|false 
*/
A($name,$layer='',$common=false)

B函数: 执行某个行为

/** 
* 执行某个行为 
* @param string $name 行为名称 
* @param Mixed $params 传入的参数 
* @return void 
*/
B($name, &$params=NULL)

C函数: 获取和设置配置参数 支持批量定义

/** 
* 获取和设置配置参数 支持批量定义 
* @param string|array $name 配置变量 
* @param mixed $value 配置值 
* @return mixed 
*/
C($name=null, $value=null)

D函数: 用于实例化Model 格式 项目://分组/模块

/** 
* D函数用于实例化Model 格式 项目://分组/模块 
* @param string $name Model资源地址 
* @param string $layer 业务层名称 
* @return Model 
*/
D($name='',$layer='')

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

/** 
* 快速文件数据读取和保存 针对简单类型数据 字符串、数组 
* @param string $name 缓存名称 
* @param mixed $value 缓存值 
* @param string $path 缓存路径 
* @return mixed 
*/
F($name, $value='', $path=DATA_PATH) 

G函数: 记录和统计时间(微秒)和内存使用情况

/** 
* 记录和统计时间(微秒)和内存使用情况 
* 使用方法: 
* <code> 
* G('begin'); // 记录开始标记位 
* // ... 区间运行代码 
* G('end'); // 记录结束标签位 
* echo G('begin','end',6); // 统计区间运行时间 精确到小数后6位 
* echo G('begin','end','m'); // 统计区间内存使用情况 
* 如果end标记位没有定义,则会自动以当前作为标记位 
* 其中统计内存使用需要 MEMORY_LIMIT_ON 常量为true才有效 
* </code> * @param string $start 开始标签 
* @param string $end 结束标签 
* @param integer|string $dec 小数位或者m  
* @return mixed 
*/
G($start,$end='',$dec=4)

I函数: 获取输入参数 支持过滤和默认值

/** 
* 获取输入参数 支持过滤和默认值 
* 使用方法: 
* <code> 
* I('id',0); 获取id参数 自动判断get或者post 
* I('post.name','','htmlspecialchars'); 获取$_POST['name'] 
* I('get.'); 获取$_GET 
* </code>  
* @param string $name 变量的名称 支持指定类型 
* @param mixed $default 不存在的时候默认值 
* @param mixed $filter 参数过滤方法 
* @return mixed 
*/
I($name,$default='',$filter=null)

L函数: 获取和设置语言定义(不区分大小写)

/** 
* 获取和设置语言定义(不区分大小写) 
* @param string|array $name 语言变量 
* @param string $value 语言值 
* @return mixed 
*/
L($name=null, $value=null)

M函数: 用于实例化一个没有模型文件的Model

/** 
* M函数用于实例化一个没有模型文件的Model 
* @param string $name Model名称 支持指定基础模型 例如 MongoModel:User 
* @param string $tablePrefix 表前缀 
* @param mixed $connection 数据库连接信息 
* @return Model 
*/
M($name='', $tablePrefix='',$connection='')

N函数: 设置和获取统计数据

/** 
* 设置和获取统计数据 
* 使用方法: 
* <code> 
* N('db',1); // 记录数据库操作次数 
* N('read',1); // 记录读取次数 
* echo N('db'); // 获取当前页面数据库的所有操作次数 
* echo N('read'); // 获取当前页面读取次数 
* </code>  
* @param string $key 标识位置 
* @param integer $step 步进值 
* @return mixed 
*/
N($key, $step=0,$save=false)

R函数: 远程调用模块的操作方法 URL 参数格式 [项目://][分组/]模块/操作

/** 
* 远程调用模块的操作方法 URL 参数格式 [项目://][分组/]模块/操作 
* @param string $url 调用地址 
* @param string|array $vars 调用参数 支持字符串和数组  
* @param string $layer 要调用的控制层名称 
* @return mixed 
*/
R($url,$vars=array(),$layer='')

S函数: 缓存管理

/** 
* 缓存管理 
* @param mixed $name 缓存名称,如果为数组表示进行缓存设置 
* @param mixed $value 缓存值 
* @param mixed $options 缓存参数 
* @return mixed 
*/
S($name,$value='',$options=null) 

T函数: 获取模版文件 格式 项目://分组@主题/模块/操作

/** 
* 获取模版文件 格式 项目://分组@主题/模块/操作 
* @param string $name 模版资源地址 
* @param string $layer 视图层(目录)名称 
* @return string 
*/
T($template='',$layer='')

U函数: URL组装 支持不同URL模式

/** 
* URL组装 支持不同URL模式 
* @param string $url URL表达式,格式:'[分组/模块/操作#锚点@域名]?参数1=值1&参数2=值2...' 
* @param string|array $vars 传入的参数,支持数组和字符串 
* @param string $suffix 伪静态后缀,默认为true表示获取配置值 
* @param boolean $redirect 是否跳转,如果设置为true则表示跳转到该URL地址 
* @param boolean $domain 是否显示域名 
* @return string 
*/
U($url='',$vars='',$suffix=true,$redirect=false,$domain=false)

W函数: 渲染输出Widget

/** 
* 渲染输出Widget 
* @param string $name Widget名称 
* @param array $data 传入的参数 
* @param boolean $return 是否返回内容  
* @param string $path Widget所在路径 
* @return void 
*/
W($name, $data=array(), $return=false,$path='')

此处附带:ThinkPHP内置所有函数的原型定义

<?php

/**
 * Think API模式函数库
 */

/**
 * 获取和设置配置参数 支持批量定义
 * @param string|array $name 配置变量
 * @param mixed $value 配置值
 * @param mixed $default 默认值
 * @return mixed
 */
function C($name=null, $value=null,$default=null) {}

/**
 * 加载配置文件 支持格式转换 仅支持一级配置
 * @param string $file 配置文件名
 * @param string $parse 配置解析方法 有些格式需要用户自己解析
 * @return void
 */
function load_config($file,$parse=CONF_PARSE) {}

/**
 * 抛出异常处理
 * @param string $msg 异常消息
 * @param integer $code 异常代码 默认为0
 * @return void
 */
function E($msg, $code=0) {}

/**
 * 记录和统计时间(微秒)和内存使用情况
 * 使用方法:
 * <code>
 * G('begin'); // 记录开始标记位
 * // ... 区间运行代码
 * G('end'); // 记录结束标签位
 * echo G('begin','end',6); // 统计区间运行时间 精确到小数后6位
 * echo G('begin','end','m'); // 统计区间内存使用情况
 * 如果end标记位没有定义,则会自动以当前作为标记位
 * 其中统计内存使用需要 MEMORY_LIMIT_ON 常量为true才有效
 * </code>
 * @param string $start 开始标签
 * @param string $end 结束标签
 * @param integer|string $dec 小数位或者m
 * @return mixed
 */
function G($start,$end='',$dec=4) {}

/**
 * 获取和设置语言定义(不区分大小写)
 * @param string|array $name 语言变量
 * @param string $value 语言值
 * @return mixed
 */
function L($name=null, $value=null) {}

/**
 * 添加和获取页面Trace记录
 * @param string $value 变量
 * @param string $label 标签
 * @param string $level 日志级别
 * @param boolean $record 是否记录日志
 * @return void
 */
function trace($value='[think]',$label='',$level='DEBUG',$record=false) {}

/**
 * 编译文件
 * @param string $filename 文件名
 * @return string
 */
function compile($filename) {}

/**
 * 获取输入参数 支持过滤和默认值
 * 使用方法:
 * <code>
 * I('id',0); 获取id参数 自动判断get或者post
 * I('post.name','','htmlspecialchars'); 获取$_POST['name']
 * I('get.'); 获取$_GET
 * </code>
 * @param string $name 变量的名称 支持指定类型
 * @param mixed $default 不存在的时候默认值
 * @param mixed $filter 参数过滤方法
 * @return mixed
 */
function I($name,$default='',$filter=null) {}

/**
 * 设置和获取统计数据
 * 使用方法:
 * <code>
 * N('db',1); // 记录数据库操作次数
 * N('read',1); // 记录读取次数
 * echo N('db'); // 获取当前页面数据库的所有操作次数
 * echo N('read'); // 获取当前页面读取次数
 * </code>
 * @param string $key 标识位置
 * @param integer $step 步进值
 * @return mixed
 */
function N($key, $step=0,$save=false) {}

/**
 * 字符串命名风格转换
 * type 0 将Java风格转换为C的风格 1 将C风格转换为Java的风格
 * @param string $name 字符串
 * @param integer $type 转换类型
 * @return string
 */
function parse_name($name, $type=0) {}

/**
 * 优化的require_once
 * @param string $filename 文件地址
 * @return boolean
 */
function require_cache($filename) {}

/**
 * 区分大小写的文件存在判断
 * @param string $filename 文件地址
 * @return boolean
 */
function file_exists_case($filename) {}

/**
 * 导入所需的类库 同java的Import 本函数有缓存功能
 * @param string $class 类库命名空间字符串
 * @param string $baseUrl 起始路径
 * @param string $ext 导入的文件扩展名
 * @return boolean
 */
function import($class, $baseUrl = '', $ext=EXT) {}

/**
 * 基于命名空间方式导入函数库
 * load('@.Util.Array')
 * @param string $name 函数库命名空间字符串
 * @param string $baseUrl 起始路径
 * @param string $ext 导入的文件扩展名
 * @return void
 */
function load($name, $baseUrl='', $ext='.php') {}

/**
 * 快速导入第三方框架类库 所有第三方框架的类库文件统一放到 系统的Vendor目录下面
 * @param string $class 类库
 * @param string $baseUrl 基础目录
 * @param string $ext 类库后缀
 * @return boolean
 */
function vendor($class, $baseUrl = '', $ext='.php') {}

/**
 * D函数用于实例化模型类 格式 [资源://][模块/]模型
 * @param string $name 资源地址
 * @param string $layer 模型层名称
 * @return Model
 */
function D($name='',$layer='') {}

/**
 * M函数用于实例化一个没有模型文件的Model
 * @param string $name Model名称 支持指定基础模型 例如 MongoModel:User
 * @param string $tablePrefix 表前缀
 * @param mixed $connection 数据库连接信息
 * @return Model
 */
function M($name='', $tablePrefix='',$connection='') {}

/**
 * 解析资源地址并导入类库文件
 * 例如 module/controller addon://module/behavior
 * @param string $name 资源地址 格式:[扩展://][模块/]资源名
 * @param string $layer 分层名称
 * @return string
 */
function parse_res_name($name,$layer,$level=1) {}

/**
 * A函数用于实例化控制器 格式:[资源://][模块/]控制器
 * @param string $name 资源地址
 * @param string $layer 控制层名称
 * @param integer $level 控制器层次
 * @return Controller|false
 */
function A($name,$layer='',$level='') {}

/**
 * 远程调用控制器的操作方法 URL 参数格式 [资源://][模块/]控制器/操作
 * @param string $url 调用地址
 * @param string|array $vars 调用参数 支持字符串和数组
 * @param string $layer 要调用的控制层名称
 * @return mixed
 */
function R($url,$vars=array(),$layer='') {}

/**
 * 执行某个行为
 * @param string $name 行为名称
 * @param Mixed $params 传入的参数
 * @return void
 */
function B($name, &$params=NULL) {}

/**
 * 去除代码中的空白和注释
 * @param string $content 代码内容
 * @return string
 */
function strip_whitespace($content) {}

/**
 * 浏览器友好的变量输出
 * @param mixed $var 变量
 * @param boolean $echo 是否输出 默认为True 如果为false 则返回输出字符串
 * @param string $label 标签 默认为空
 * @param boolean $strict 是否严谨 默认为true
 * @return void|string
 */
function dump($var, $echo=true, $label=null, $strict=true) {}

/**
 * URL重定向
 * @param string $url 重定向的URL地址
 * @param integer $time 重定向的等待时间(秒)
 * @param string $msg 重定向前的提示信息
 * @return void
 */
function redirect($url, $time=0, $msg='') {}

/**
 * 缓存管理
 * @param mixed $name 缓存名称,如果为数组表示进行缓存设置
 * @param mixed $value 缓存值
 * @param mixed $options 缓存参数
 * @return mixed
 */
function S($name,$value='',$options=null) {}

/**
 * 快速文件数据读取和保存 针对简单类型数据 字符串、数组
 * @param string $name 缓存名称
 * @param mixed $value 缓存值
 * @param string $path 缓存路径
 * @return mixed
 */
function F($name, $value='', $path=DATA_PATH) {}

/**
 * 根据PHP各种类型变量生成唯一标识号
 * @param mixed $mix 变量
 * @return string
 */
function to_guid_string($mix) {}

/**
 * XML编码
 * @param mixed $data 数据
 * @param string $root 根节点名
 * @param string $item 数字索引的子节点名
 * @param string $attr 根节点属性
 * @param string $id   数字索引子节点key转换的属性名
 * @param string $encoding 数据编码
 * @return string
 */
function xml_encode($data, $root='think', $item='item', $attr='', $id='id', $encoding='utf-8') {}

/**
 * 数据XML编码
 * @param mixed  $data 数据
 * @param string $item 数字索引时的节点名称
 * @param string $id   数字索引key转换为的属性名
 * @return string
 */
function data_to_xml($data, $item='item', $id='id') {}

/**
 * session管理函数
 * @param string|array $name session名称 如果为数组则表示进行session设置
 * @param mixed $value session值
 * @return mixed
 */
function session($name,$value='') {}
/**
 * Cookie 设置、获取、删除
 * @param string $name cookie名称
 * @param mixed $value cookie值
 * @param mixed $options cookie参数
 * @return mixed
 */
function cookie($name, $value='', $option=null) {}

/**
 * 加载动态扩展文件
 * @return void
 */
function load_ext_file($path) {}
/**
 * 获取客户端IP地址
 * @param integer $type 返回类型 0 返回IP地址 1 返回IPV4地址数字
 * @return mixed
 */
function get_client_ip($type = 0) {}

/**
 * 发送HTTP状态
 * @param integer $code 状态码
 * @return void
 */
function send_http_status($code) {}

// 过滤表单中的表达式
function filter_exp(&$value) {}

// 不区分大小写的in_array实现
function in_array_case($value,$array) {}

为了能方便大家学习和掌握,在这里汇总下ThinkPHP中的经典函数用法,无论你是资深还是菜鸟TPer,绝对不容错过哦 _

A 函数:实例化控制器
R 函数:直接调用控制器的操作方法
C 函数:设置和获取配置参数
L 函数:设置和获取语言变量
D 函数:实例化模型
M 函数:实例化模型(无需定义模型类)
N 函数:计数器
G 函数:调试统计
U 函数:URL地址生成
I 函数:安全获取系统输入变量
S 函数:缓存设置和存取
F 函数:快速缓存设置和存取
session函数:Session操作
cookie函数:Cookie操作
import函数:类库导入

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,277评论 6 503
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,689评论 3 393
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 163,624评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,356评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,402评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,292评论 1 301
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,135评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,992评论 0 275
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,429评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,636评论 3 334
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,785评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,492评论 5 345
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,092评论 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,723评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,858评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,891评论 2 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,713评论 2 354

推荐阅读更多精彩内容

  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 11,100评论 1 32
  • 1、PHP语言的一大优势是跨平台,什么是跨平台?一、PHP基础: PHP的运行环境最优搭配为Apache+MySQ...
    __书山有路__阅读 1,488评论 0 15
  • 今天,我和爸爸妈妈去超市购年货。 我们来到了超市门口,看到门口张灯结彩,人们来来往往,川流不息,他们...
    1e61223a3e95阅读 199评论 1 0
  • 一股新年计划的热潮,我也开始思考我的2018计划:要怎么过,要设立哪些目标,要拥有什么成绩。 回顾2017这一年,...
    诗凝_12e8阅读 218评论 0 1
  • 我今天给大家讲的题目是环境改变人。 最经典的例子就是孟母三迁吧,不管听过没听过,现在我要讲一下,这个故事讲的是孟子...
    梅子看看阅读 333评论 0 1