单字母函数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函数: 记录和统计时间(微秒)和内存使用情况
/**
* 记录和统计时间(微秒)和内存使用情况
* 使用方法:
*
* G('begin'); // 记录开始标记位
* // ... 区间运行代码
* G('end'); // 记录结束标签位
* echo G('begin','end',6); // 统计区间运行时间 精确到小数后6位
* echo G('begin','end','m'); // 统计区间内存使用情况
* 如果end标记位没有定义,则会自动以当前作为标记位
* 其中统计内存使用需要 MEMORY_LIMIT_ON 常量为true才有效
*
* @param string $start 开始标签
* @param string $end 结束标签
* @param integer|string $dec 小数位或者m
* @return mixed
*/
G($start,$end='',$dec=4)
I函数: 获取输入参数 支持过滤和默认值
/**
* 获取输入参数 支持过滤和默认值
* 使用方法:
*
* I('id',0); 获取id参数 自动判断get或者post
* I('post.name','','htmlspecialchars'); 获取$_POST['name']
* I('get.'); 获取$_GET
*
* @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函数: 设置和获取统计数据
/**
* 设置和获取统计数据
* 使用方法:
*
* N('db',1); // 记录数据库操作次数
* N('read',1); // 记录读取次数
* echo N('db'); // 获取当前页面数据库的所有操作次数
* echo N('read'); // 获取当前页面读取次数
*
* @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内置所有函数的原型定义
* G('begin'); // 记录开始标记位 * // ... 区间运行代码 * G('end'); // 记录结束标签位 * echo G('begin','end',6); // 统计区间运行时间 精确到小数后6位 * echo G('begin','end','m'); // 统计区间内存使用情况 * 如果end标记位没有定义,则会自动以当前作为标记位 * 其中统计内存使用需要 MEMORY_LIMIT_ON 常量为true才有效 *
* @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) {} /** * 获取输入参数 支持过滤和默认值 * 使用方法: ** I('id',0); 获取id参数 自动判断get或者post * I('post.name','','htmlspecialchars'); 获取$_POST['name'] * I('get.'); 获取$_GET *
* @param string $name 变量的名称 支持指定类型 * @param mixed $default 不存在的时候默认值 * @param mixed $filter 参数过滤方法 * @return mixed */ function I($name,$default='',$filter=null) {} /** * 设置和获取统计数据 * 使用方法: ** N('db',1); // 记录数据库操作次数 * N('read',1); // 记录读取次数 * echo N('db'); // 获取当前页面数据库的所有操作次数 * echo N('read'); // 获取当前页面读取次数 *
* @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函数:类库导入