2、变量 赋值 输出

一 控制器传递变量

1)assign方法

//1、向页面传递单个变量
View::assign('name','李白');

//2 向页面传递多个变量 [ 必须用数组 ]
View::assign(['name'=>'李白','age'=>'100']);

//3 向页面传递多维数组
$arr = [
['name'=>'李白','age'=>100],
['name'=>'杜甫','age'=>150]
];
View::assign('arr',$arr);
View::assign(['arr'=>$arr]);

//4 向页面传递对象
View::assign('obj',$this);
View::assign(['obj'=>$this]);

控制器定义的常量模板页可以直接使用

2)fetch方法 (助手函数 view 就是该方法)

//1、向页面传递单个或多个变量( 必须用数组 )
return View::fetch('',['name' => '李白','age'=>'100']);

//2、向页面传递数组
$arr = [
  ['name'=>'jack'],
  ['age'=>50]
];
return View::fetch('',['data' => $arr]);

//3、向页面传递对象
return View::fetch('',['obj' => $this,]);

 

二 模板页定义变量

//1 定义变量
View::assign('name','李白');
{assign name="teacher" value="$name"}//[value支持变量 和 系统变量]
{$teacher}

//2 定义常量
View::assign('name','李白');
{define name="TEACHER" value="$name"}//[value支持变量 和 系统变量]
{$Think.const.TEACHER}

 

三 变量输出

1)普通变量

{$之间不能有空格

{$name}//输出变量 {$arr.name}//输出一维数组 {$arr['0']['name']}//输出二维数组 {$Think.const.CONST_NAME}//输出常量 {$Think.PHP_VERSION}//输出常量 [PHP版本] 省略const不写 {$obj->name}//调用对象属性 {$obj->demo()}//调用对象方法 {$obj::say()}//调用静态方法 {$obj->say()}//调用静态方法 {$obj::CONST_NAME}//调用对象常量
{}//如何调用静态属性

2)配置文件输出

{$Think.config.app.app_host}
{$Think.config.session.name}
{$Think.config.app.error_message}

 3)输出系统变量

支持: $_SERVER $_ENV $_POST $_GET $REQUEST $_SESSION $_COOKIE

基础语法:$Request.方法名.参数 (R必须大写)
{$Request.
get.id}//输出系统变量 {$Request.server.script_name} // 输出$_SERVER['SCRIPT_NAME']变量 {$Request.session.user_id} // 输出$_SESSION['user_id']变量 {$Request.get.page} // 输出$_GET['page']变量 {$Request.cookie.name} // 输出$_COOKIE['name']变量

4)支持request类的大部分方法  但只支持方法的第一个参数

{$Request.param.name}         // 调用Request对象的param方法 传入参数为name

{$Request.param.user.nickname}// 调用Request对象的param方法 传入参数为user.nickname

{$Request.root}      // 调用Request对象的root方法

{$Request.root.true} // 调用Request对象的root方法,并且传入参数true

{$Request.path}      // 调用Request对象的path方法

{$Request.module}    // 调用Request对象的module方法

{$Request.controller}// 调用Request对象的controller方法

{$Request.action}  // 调用Request对象的action方法

{$Request.ext}     // 调用Request对象的ext方法

{$Request.host}    // 调用Request对象的host方法

{$Request.ip}      // 调用Request对象的ip方法

{$Request.header.accept-encoding}// 调用Request对象的header方法

 5)没有搞懂的

//语言变量
{$Think.lang.page_error}
{$Think.lang.var_error}

//扩展解析
$template->extend('$Cms', function(array $vars) {
    return implode('.', $vars);
});

 

posted @ 2021-01-06 09:00  棉花糖88  阅读(383)  评论(0)    收藏  举报