• ThinkPHP 3.2 常用内置函数


    内置函数

    C

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

    1. 获取:C(需要获得的配置参数Name)
    $value = C('config_name');
    
    • 1
    • 设置:C(参数名称,参数value)
    C('config_name', 'new_value');
    
    • 1

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

    DB_TYPE:数据库类型。
    DB_HOST:数据库主机。
    DB_NAME:数据库名称。
    DB_USER:数据库用户名。
    DB_PWD:数据库密码。
    DB_PORT:数据库端口。
    DB_PREFIX:数据库表前缀。
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    系统公共设置:

    APP_DEBUG:是否开启调试模式。
    APP_GROUP_MODE:分组模式,默认为0,即目录分组模式。
    APP_GROUP_LIST:定义分组列表。
    DEFAULT_TIMEZONE:默认时区。
    
    • 1
    • 2
    • 3
    • 4

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

    D

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

    //实例化模型
    $User = D('User');
    // 相当于 $User = new \Home\Model\UserModel();
    
    • 1
    • 2
    • 3

    语法:

    D('表名称')
    
    • 1

    M

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

    M('表名称')
    
    • 1

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

    相同点:

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

    不同点:

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

    I

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

    I('[变量来源类型.]变量名[/变量类型]',['默认值'],['过滤方法'])
    
    • 1

    变量来源类型参数有:

    get		获取GET参数
    post	获取POST参数
    param	自动判断请求类型获取GET、POST或者PUT参数
    request	获取REQUEST 参数
    put		获取PUT 参数
    session	获取 $_SESSION 参数
    cookie	获取 $_COOKIE 参数
    server	获取 $_SERVER 参数
    globals	获取 $GLOBALS参数
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    示例:

    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'] 
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    变量名不仅可以获取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
    
    • 1
    • 2
    • 3
    • 4
    • 5

    变量类型可选参数有:
    ![](https://img-blog.csdnimg.cn/01d7a1ee6b154c0b9838dfd880e75549.png
    列如:

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

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

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

    可选参数:过滤方法

    A

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

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

    在同级目录中:

    $User = A('User');//表示同目录的UserController
    
    • 1

    在其他目录中:

    $User = A('Admin/User');//表示同Admin目录的UserController
    
    • 1

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

    $User = A('Admin://User');//Admin项目中的同级UserController
    
    • 1

    R

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

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

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

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

    当方法为无参时

    $data = R('User/detail');
    
    • 1

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

    R('Admin/User/detail',array('5'));//表示admin模块UserController中detail方法
    R('Admin://User/detail',array('5'));//表示admin项目UserController中detail方法
    
    • 1
    • 2
  • 相关阅读:
    OpenCV 人脸检测(易上手版)
    bellman ford
    基于互联网的招聘信息统计与分析(作业)
    Linux-Nginx安装
    leetcode200题模式总结
    k8s/资源清单
    【正点原子I.MX6U-MINI应用篇】3、Framebuffer应用编程,操作屏幕
    多策略黑猩猩优化算法-附代码
    深圳跨境电商的崛起:从“野蛮生长”到“全球引领”
    javaEE进阶——SpringBoot与SpringMVC第一讲
  • 原文地址:https://blog.csdn.net/qq_42982191/article/details/133961584