标签:
例如,读取当前的URL模式配置参数:
$model = C(‘URL_MODEL‘); // 由于配置参数不区分大小写,因此下面的写法是等效的 // $model = C(‘url_model‘);
C方法也可以用于读取二维配置:
//获取用户配置中的用户类型设置 C(‘USER_CONFIG.USER_TYPE‘);
因为配置参数是全局有效的,因此C方法可以在任何地方读取任何配置,即使某个设置参数已经生效过期了。
例如,我们需要动态改变数据缓存的有效期的话,可以使用
// 动态改变缓存有效期 C(‘DATA_CACHE_TIME‘,60);
动态配置赋值仅对当前请求有效,不会对以后的请求造成影响。
动态改变配置参数的方法和读取配置的方法在使用上面非常接近,都是使用C方法,只是参数的不同。
也可以支持二维数组的读取和设置,使用点语法进行操作,如下:
// 获取已经设置的参数值 C(‘USER_CONFIG.USER_TYPE‘); // 设置新的值 C(‘USER_CONFIG.USER_TYPE‘,1);
// 假设当前模块是Home模块 $User = A(‘User‘); $Blog = A(‘Admin/Blog‘);
默认情况下,A方法实例化的是默认控制器层(Controller),如果你要实例化其他的分层控制器的话,可以使用:
// 假设当前模块是Home模块 // 实例化Event控制器 $User = A(‘User‘,‘Event‘); $Blog = A(‘Admin/Blog‘,‘Event‘);
备注:需要指定方法
echo R(‘Admin/Index/index‘);
如果不定义模块的话 就表示当前模块名称,下面是一些简单的例子:
U(‘User/add‘) // 生成User控制器的add操作的URL地址 U(‘Blog/read?id=1‘) // 生成Blog控制器的read操作 并且id为1的URL地址 U(‘Admin/User/select‘) // 生成Admin模块的User控制器的select操作的URL地址
U方法的第二个参数支持数组和字符串两种定义方式,如果只是字符串方式的参数可以在第一个参数中定义,例如:
U(‘Blog/cate‘,array(‘cate_id‘=>1,‘status‘=>1)) U(‘Blog/cate‘,‘cate_id=1&status=1‘) U(‘Blog/cate?cate_id=1&status=1‘)
三种方式是等效的,都是生成Blog控制器的cate操作 并且 cate_id 为1 status 为1的URL地址。
U函数会自动识别当前配置的伪静态后缀,如果你需要指定后缀生成URL地址的话,可以显式传入,例如:
U(‘Blog/cate‘,‘cate_id=1&status=1‘,‘xml‘);
I方法是ThinkPHP用于更加方便和安全的获取系统输入变量,可以用于任何地方,用法格式如下:
我们以GET变量类型为例,说明下I方法的使用:
echo I(‘get.id‘); // 相当于 $_GET[‘id‘] echo I(‘get.name‘); // 相当于 $_GET[‘name‘]
支持默认值:
echo I(‘get.id‘,0); // 如果不存在$_GET[‘id‘] 则返回0 echo I(‘get.name‘,‘‘); // 如果不存在$_GET[‘name‘] 则返回空字符串
采用方法过滤:
// 采用htmlspecialchars方法对$_GET[‘name‘] 进行过滤,如果不存在则返回空字符串 echo I(‘get.name‘,‘‘,‘htmlspecialchars‘);
支持直接获取整个变量类型,例如:
// 获取整个$_GET 数组 I(‘get.‘);
用同样的方式,我们可以获取post或者其他输入类型的变量,例如:
I(‘post.name‘,‘‘,‘htmlspecialchars‘); // 采用htmlspecialchars方法对$_POST[‘name‘] 进行过滤,如果不存在则返回空字符串 I(‘session.user_id‘,0); // 获取$_SESSION[‘user_id‘] 如果不存在则默认为0 I(‘cookie.‘); // 获取整个 $_COOKIE 数组 I(‘server.REQUEST_METHOD‘); // 获取 $_SERVER[‘REQUEST_METHOD‘]
param变量类型是框架特有的支持自动判断当前请求类型的变量获取方式,例如:
echo I(‘param.id‘);
如果当前请求类型是GET,那么等效于 $_GET[‘id‘],如果当前请求类型是POST或者PUT,那么相当于获取 $_POST[‘id‘] 或者 PUT参数id。
由于param类型是I函数默认获取的变量类型,因此事实上param变量类型的写法可以简化为:
I(‘id‘); // 等同于 I(‘param.id‘) I(‘name‘); // 等同于 I(‘param.name‘)
path类型变量可以用于获取URL参数(必须是PATHINFO模式参数有效,无论是GET还是POST方式都有效),例如: 当前访问URL地址是 http://serverName/index.php/New/2013/06/01
那么我们可以通过
echo I(‘path.1‘); // 输出2013 echo I(‘path.2‘); // 输出06 echo I(‘path.3‘); // 输出01
data类型变量可以用于获取不支持的变量类型的读取,例如:
I(‘data.file1‘,‘‘,‘‘,$_FILES);
标签:
原文地址:http://www.cnblogs.com/sihuiming/p/5492613.html