Smarty 知识记录

最近接手了公司的一个 Smarty 项目,由于之前没有开发过 PHP 相关,基本上是边查边做,顺便这里记录一下遇到的一些问题吧。

变量

变量前需要加 $ 声明直接赋值就可以,使用的时候也要加 $

{%$isPay = true%}
{%$price = $isPay ? 9.99 : 0%}

判断语句

模板 smarty 的判断语句挺简单,如下所示:

{%if code%}
    {%some code here%}
{%elseif code%}
    {%some code here%}
{%else%}
    {%some code here%}
{%/if%}

拼接字符串

PHP 拼接字符串用运算符 . 即可,而 Smarty 则需要用 |cat:。如下所示:

// 『 php 』
<?php  
$hello = 'hello'
echo $hello.'world'    // "hello world"

// 『 smarty 』
{%$hello = 'hello'%}
{%$hello|cat:'world'%}    // "hello world"

正则

官网给了很多函数,使用的时候可以直接查询,举例如下。

{%$title = '大家都在搜_热门新品'%}
{%$reg = '/_/'%}
{%$titles = preg_split($reg, $title, -1)%}
// ['大家都在搜', '热门新品']

URL 工具

官网同样给了很多函数,使用的时候可以直接查询,举例如下。

// 获取 URL 内 GET 参数 isPay 的值
{%$smarty.get.isPay%}

// 获取 SERVER 的域名
{%$_SERVER['HTTP_HOST']%}

判断变量是否为空

{%if isset($isPay) && !empty($isPay)%}{%/if%}