ThinkPHP的自有函数是在ThinkPHP/Common/common.php(3.2版本是在funciton.php了)下定义的,框架加载时即把这个函数加载进来,因此在控制器等写代码时,这些方便高效的函数即可直接调用。
U函数:格式:U('地址','参数','伪静态','是否跳转','显示域名'),名字来源:URL。
基本用法:模块/操作地址,或分组/模块/操作地址,也可传入参数。路由支持、域名支持、锚点支持。
I函数:格式:I('变量类型.变量名',['默认值'],['过滤方法']),名字来源:Input。
变量类型有get、post、param、request、put、session、cookie、server、global,不区分大小写,但变量名区分大小写。变量过滤。
I('post.name','','htmlspecialchars'); // 采用htmlspecialchars方法对$_POST['name'] 进行过滤,如果不存在则返回空字符串。
M函数:格式:M('[基础模型名:]模型名','数据表前缀','数据库连接信息'),名字来源:Model。
实例化基础模型(Model) 类:$User = M('User');、实例化其他公共模型类:$User = M('CommonModel:User');、传入表前缀、数据库和其他信息:$User = M('db2.User','think_');、
D函数:格式:D('[项目://][分组/]模型','模型层名称'),名字来源:
自动检测模型类,如果存在自定义的模型类,则实例化自定义模型类,如果不存在,则会实例化Model基类。M方法实例化模型无需用户为每个数据表定义模型类,如果D方法没有找到定义的模型类,则会自动调用M方法。
A函数:格式:A('[项目://][分组/]模块','控制器层名称'),名字来源:Action。
$User = A('User');表示实例化当前项目的UserAction控制器(这个控制器对应的文件位于Lib/Action/UserAction.class.php)。
F函数:格式:F('缓存文件名','数据'/NULL,'缓存路径'),名字来源:File。
F方法其实是S方法的一个子集功能,仅用于简单数据缓存,并且只能支持文件形式,不支持缓存有效期。
写入和读取缓存:写入:F('data','test data');默认起始路径是DATA_PATH(该常量在默认配置位于RUNTIME_PATH.'Data/'下面),亦即会生成DATA_PATH.'data.php'的缓存文件。读取:$Data = F('data');。缓存文件名支持子目录格式。
删除缓存:F('data',NULL);第二个参数传入NULL,则表示删除标识为data的数据缓存。缓存文件名支持批量删除及使用过滤条件删除。
C函数:格式:C('变量名','数据','默认值'),名字来源:Config。
C方法是ThinkPHP用于设置、获取,以及保存配置参数的方法。
获取参数:$db_name=C('DB_NAME');;设置参数:C('DB_NAME','thinkphp');;保存参数。
S函数:格式:S('缓存名称','数据','缓存类型/缓存时间'),名字来源:Save。
S函数,文件缓存,动态缓存,有生命时长,时间到期后缓存内容会得到更新。常用于单页面data缓存。 F函数,快速缓存,类似php自带的file_put_content和file_get_content,没有太多存在时间的概念,是文件存储数据的方式。常用于文件配置。
import函数:格式:import('类库名', '起始路径', '类库后缀')。
导入系统基类库、导入扩展类库、导入项目应用类库、导入非标准类库文件、第三方类库导入Vendor函数、别名导入
当然还有其它如L函数、T函数、R函数、load函数、vendor函数等等。