smarty标签变量的来源

smarty标签变量,来源于3个部分:

1:是php中assign分配的变量

2:smarty的系统保留变量

3:从配置文件读取到的配置变量

下面具体看看他们的用法:

1:assign赋值

// 3种变量来源之assign赋值
$smarty->assign('name','李白');
$smarty->assign('poem','天生我才必有用');
2:系统保留变量,不用赋值,自动获取

// 3中变量来源之 系统保留变量,不用赋值,自动获取
$smarty->assign('id',$_GET['id']);
define('HEI','这是常量');
3:从配置文件中读取配置变量

      有些数据,比如网站底部的电话信息,不想从数据库中读了,可以写到配置文件里,模板能够读出此配置文件的选项来

     1:配置文件一般以.conf做后缀(如 site.conf)
     2:配置文件的写法是
            选项1=值1
            选项2=值2
     3:配置smarty的config_dir,并把配置文件放在该目录下

// 引入smarty
require('../smarty3/libs/Smarty.class.php');
$smarty = new Smarty();
$smarty->template_dir = './temp';
$smarty->compile_dir = './comp';
$smarty->config_dir = './conf';
site.conf中的变量

site = 广州
hao = xxx科技
tel = 1380013800

下面看看模板文件(html文件)中对三种赋值形式变量的使用

<body>
          <pre>
          $samrty,开头的标签,当成系统变量来解析
          如$smarty.get.id,解析成<?php echo $_GET['id']; ?>
          还有$smarty.post,$smarty.session,$smarty.cookies

          注意:要是想显示一个常量,又该如何? $smarty.const.常量名
          </pre>

          <h2>{$name}</h2>
          <p>{$poem}</p>
          <p>{$id}</p>
          <p>{$smarty.get.id}</p>
          <p>{$smarty.const.HEI}</p>

          <div>
            <p>
            {$smarty.config.site}
            </p>
            <p>
            {literal}
            用#好也能读配置文件的值
            {#hao#}
            {/literal}
            </p>
            <p>电话{#tel#}</p>
          </div>
     </body>


好了,三种变量来源差不多就是这么个情况!


注:其实smarty也能赋值一个对象

       对象属性的引用:$标签->属性名
       对象方法的使用:$标签->method();

但是!!!!
       我们回想设计模板时的初衷,是为了什么?
       就是为了分离php与html代码,让代码简洁

       所以,模板中的标签,应该尽量的是,只负责变量的输出
       就是负责显示数据的,不要负责太多的逻辑判断,函数调用等

       所以我们不推荐在模板里调用函数和方法

require('../Smarty3/libs/Smarty.class.php');

// 实例化
$smarty = new Smarty();

// 配置
$smarty->template_dir = './temp';
$smarty->compile_dir = './comp';


class human {
    public $name = '张三';
    public $age = '28';

    public function say() {
        return '你好,世界';
    }
}


$man = new human();

$smarty->assign('man',$man);

$smarty->display('01.html');
<h2>{$man->name} {$man->age}岁</h2>
            <p>张三说:{$man->say()}</p>



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值