ThinkPHP 3.2 常用内置函数

ThinkPHP 3.2

  • 内置函数
    • C
    • D
    • M
    • [疑问: D与M方法的相同点与不同点](#疑问: D与M方法的相同点与不同点)
    • I
    • A
    • R

内置函数

C

C方法是用于获取或修改,系统配置参数
语法:

  1. 获取:C(需要获得的配置参数Name)

    $value = C('config_name');

  • 设置:C(参数名称,参数value)

    C('config_name', 'new_value');

C方法可以获取index.php,与Common\Conf\config.php等,系统核心配置文件中配置,如,数据库相关配置:

复制代码
DB_TYPE:数据库类型。
DB_HOST:数据库主机。
DB_NAME:数据库名称。
DB_USER:数据库用户名。
DB_PWD:数据库密码。
DB_PORT:数据库端口。
DB_PREFIX:数据库表前缀。

系统公共设置:

复制代码
APP_DEBUG:是否开启调试模式。
APP_GROUP_MODE:分组模式,默认为0,即目录分组模式。
APP_GROUP_LIST:定义分组列表。
DEFAULT_TIMEZONE:默认时区。

总结:这是一个提供给开发人员灵活更改配置文件配置的函数,但是需要非常注意使用,一旦多处混乱使用将导致全局配置发生错误

D

D方法用于实例化指定数据库表模型,属于实例化数据访问层模型,D方法真正含义表示,实例化与数据表相对应的Model类

复制代码
//实例化模型
$User = D('User');
// 相当于 $User = new \Home\Model\UserModel();

语法:

复制代码
D('表名称')

M

M方法用于实例化指定数据库表模型,属于实例化业务层模型

复制代码
M('表名称')

疑问: D与M方法的相同点与不同点

相同点:

  • D与M方法语法都相同,都可以直接使用数据表名称,来访问数据表
  • 都支持链式调用

不同点:

  • D方法需要实例化模型类(Model类),而M方法则不需要,所以仅使用CRUD时,使用M方法效率更高
  • D方法表示自定义到模型类,所以它不仅支持简单到CRUD操作,还支持封装自定义操作数据表函数,便于外部调用

I

I方法命名来自于英文Input(输入),主要用于更加方便和安全的获取请求输入变量
语法

复制代码
I('[变量来源类型.]变量名[/变量类型]',['默认值'],['过滤方法'])

变量来源类型参数有:

复制代码
get		获取GET参数
post	获取POST参数
param	自动判断请求类型获取GET、POST或者PUT参数
request	获取REQUEST 参数
put		获取PUT 参数
session	获取 $_SESSION 参数
cookie	获取 $_COOKIE 参数
server	获取 $_SERVER 参数
globals	获取 $GLOBALS参数

示例:

php 复制代码
echo I('get.id'); // 获取get请求中的id参数
echo I('get.'); // 获取get请求所有参数
echo I('param.age'); // 自动判断请求类型获取age 参数
echo I('sex'); // 相当于I('param.sex'),param可以简写
I('session.user_id',0); // 获取$_SESSION['user_id'] 如果不存在则默认为0
I('cookie.login'); // 从cookie中获取cookie名字为login的参数值
I('server.REQUEST_METHOD'); // 获取 $_SERVER['REQUEST_METHOD'] 

变量名不仅可以获取key=value模式的值,还可以获取PATHINFO(Restful)格式数据,例如:

复制代码
访问URL:   http://serverName/index.php/New/2013/06/01 
在后台获取参数时可以使用以下方式获取
 I('param.1'); // 输出2013
 I('param.2'); // 输出06
 I('param.3'); // 输出01

变量类型 可选参数有:

列如:

php 复制代码
I('get.id/d'); // 获取get方法中,参数名称为id,参数强制变量值转换为整型
I('post.name/s'); //  获取post方法中,参数名称为id,强制转换变量为字符串类型
I('post.ids/a'); //  获取post方法中,参数名称为id,强制变量转换为数组类型

可选参数:默认值

当请求参数用户未使用时,为避免业务出错,可以指定此参数,给指定参数一个默认值

例如:

php 复制代码
I('get.id/d',0);//获取get方法中,参数名称为id,参数强制变量值转换为整型,并且默认值为0
I('name',''); //从请求中获取name值,如果此参数不存在则提供空字符串

可选参数:过滤方法

A

方法A用于实例化控制器类,方便调用控制器中到方法与属性
语法

复制代码
A('[项目://][分组/]模块','控制器层名称')

在同级目录中:

复制代码
$User = A('User');//表示同目录的UserController

在其他目录中:

复制代码
$User = A('Admin/User');//表示同Admin目录的UserController

跨项目实例化(项目的目录要保持同级)

复制代码
$User = A('Admin://User');//Admin项目中的同级UserController

R

R方法是对A 方法的进一步补充和增强
语法

复制代码
R('[项目://][分组/]模块/操作',['参数'],['控制器层名称'])

注意点: 方法必须是public类型修饰

例如:

复制代码
$data = R('User/detail',array('5'));//表示调用UserController中的detail方法,并传入参数5

当方法为无参时

复制代码
$data = R('User/detail');

也支持跨分组和项目调用:

复制代码
R('Admin/User/detail',array('5'));//表示admin模块UserController中detail方法
R('Admin://User/detail',array('5'));//表示admin项目UserController中detail方法
相关推荐
两个人的幸福1 天前
Windows 桌面应用自研 PHP 队列(下):完整代码与六大工程化优化
php
BingoGo3 天前
PHP 泛型之殇 泛型 RFC 提案被拒绝
后端·php
JaguarJack3 天前
PHP 泛型之殇 泛型 RFC 提案被拒绝
后端·php
用户3074596982074 天前
PHP 扩展——从入门到理解
php
鹏仔先生5 天前
拷贝漫画APP下载页PHP程序,后台带免费AI写作
php
云水一下5 天前
从零开始学 PHP 系列(一):PHP 的前世今生与开发环境搭建
开发语言·php
xingpanvip5 天前
星盘接口开发文档:本命盘接口指南
android·开发语言·css·php·lua
酉鬼女又兒5 天前
零基础入门计算机网络运输层:端到端通信核心作用、端口号分类规则、复用分用工作机制及UDP与TCP协议全方位对比详解
网络·网络协议·tcp/ip·计算机网络·考研·udp·php
dog2505 天前
不要再继续优化 TCP
网络协议·tcp/ip·php
Channing Lewis5 天前
PHP 解析 Excel 的那些坑:一次“行号错位”引发的数据丢失
开发语言·php·excel