Thinkphp 3 内置函数(单字母函数)

Posted by fsoooo Blog on March 10, 2018

单字母函数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函数:类库导入