Smarty3配置及入门语法

2019-05-02 00:56:31刘景俊

传递的值可以是字符串,数组也能是对象。

当变量是字符串时,{$变量名}表示输出变量。

当变量是数组时,输出变量的方式有两种,分别为:

  a.{$arr.key}

  b.{$arr['key']}

当是一个对象时,可以直接通过obj->method(),调用对象的方法

条件判断

条件判断的基本句式如下:

{if $variable 条件修饰符 value1}
 //some
{elseif $variable 条件修饰符 value2}
 //some
{else}
 //some
{/if}

基本的条件修饰符有:eq(等于),neq(不等于),gt(大于),lt(小于),lte(小于等于),gte(大于等于)。修饰符前后要有空格

循环

Smarty中有两种循环,分别是foreach,section,for和while

section循环

section不能循环遍历关联数组,它只能循环遍历连续数字下标的数组,如果要循环关联数组使用foreach

section可以接受name,loop,step,start,max,show,其中name和loop是必须的。name是每一次循环得到的下标,loop是垚循环的值,step循环的步长,默认为1,max是最大循环的次数,start开始循环的下标,默认为0,如果start为负数,就从数组末尾开始循环,show表示是否显示循环的内容,默认是true

如下:

在test文件夹下创建section.php文件,内容如下:

<?php
require ('config.php');
$article = array(
 array(
  'title'=>'第一章',
  'name'=>'QxQstar',
  'content'=>'Smarty section循环第一章'
 ),
 array(
  'title'=>'第二章',
  'name'=>'QxQstar',
  'content'=>'Smarty section循环第二章'
 )
);
$smarty->assign('article',$article);
$smarty->display('section.tpl');
?>

在tpl文件夹下创建section.tpl文件,内容如下:

<ul>
 {section name=item loop=$article}
  <li>
   {$article[item].title}
   <p>作者:{$article[item].name}</p>
   <p>内容:{$article[item].content}</p>
  </li>
 {sectionelse}
  没有文章
 {/section}
</ul>

foreach循环

foreach循环比section循环要简单,foreach的语法与php中foreach的语法很像,foreach可以做到任何section做到的功能,并且foreach更简单

{foreach $arrayvar as $itemvar}
{foreach $arrayvar as $keyvar=>$itemvar}

例子如下:

在test文件夹中创建foreach.php文件,文件内容如下:

<?php
require ('config.php');
$articles = array(
 array(
  'title'=>'第一章',
  'name'=>'QxQstar',
  'content'=>'Smarty foreach循环第一章'
 ),
 array(
  'title'=>'第二章',
  'name'=>'QxQstar',
  'content'=>'Smarty foreach循环第二章'
 )
);
$smarty->assign('articles',$articles);
$smarty->display('foreach.tpl');
?>

在tpl文件夹中创建foreach.tpl文件,内容如下:

相关文章 大家在看