search
Homephp教程php手册php使用Smarty的相关注意事项及访问变量的几种方式

php使用Smarty的相关注意事项及访问变量的几种方式

Jun 13, 2016 pm 12:03 PM
newphpssmartyuseseveral kindsvariableNewWayPrecautionsofRelatedaccess

$tpl=new Smarty();//新建一个smarty对象,我使用的是Smarty-3.1.6版本
1.设置smarty模板路径$tpl->setTemplateDir();默认情况下是templates
2.设置smarty模板编译路径$tpl->setCompileDir();默认情况下是templates_c
3.设置smarty模板引擎的左右 分隔符,

       $tpl->left_delimiter="

       $tpl->right_delimiter="}>";

       默认情况下:public $left_delimiter = "{";//smarty源代码

                        public $right_delimiter = "}";//smarty源代码

    为什么我们要改这些分隔符?

  因为比如在较早版本smarty引擎模板中,会报错,不能自动识别。
比如:

或者 javascript中

复制代码 代码如下:


<script> <BR>function show(){ <BR>alert("smarty"); <BR>} <BR></script>


这两种情况下,都有“左右大括号”,smarty引擎碰到会报错
4.初始化操作我们可以在外部另外创建一个初始化操作的php文件,如:smarty.ini.php。然后在php文件中包括进来即可

复制代码 代码如下:


include "../Smarty3.1.6/libs/Smarty.class.php";
$tpl=new Smarty();
$tpl->setTemplateDir("./Tpl");
$tpl->setTemplateDir("./Compile");
$tpl->left_delimiter="$tpl->right_delimiter="}>";
?>


5.使用smarty模板引擎的display函数或者include其他模板时,都得以smarty对象中指定的模板目录(比如:Tpl目录,默认是templates目录)为基目录。
  ①模板目录是:Tpl,该目录下存放着很多模板,有default,green,red模板,default模板目录下有很多模板文件(index.tpl、header.tpl、footer.tpl),此时display的正确用法:$tpl->display(“default/index.tpl”);即基目录下的default模板目录
  ②在模板文件(如:index.tpl)中包含其他模板文件时(如:header.tpl、footer.tpl),include的正确写法应该是: 、
  虽然index.tpl、header.tpl、footer.tpl都在同一个目录下,但是 、是错误的写法,这种情况,smarty引擎会到Tpl目录下找header和footer,而不是在default下面查找
6.如果要想让各个目录下的PHP程序都可以加载Smarty和使用Smarty指定的模板目录和编译目录,唯一的办法是使用绝对路径。
7.Smarty模板引擎中访问变量的方式(模板中的变量前记得加”$”符号)
①访问数组
索引数组:
   $tpl->assign("arr",array("aa","bb","cc"));
   $tpl->assign("arr2",array(array("二维数组一一","二维数组一二"),array("二维数组二一","二维数组二二")));
     访问索引数组:、、
   访问二维索引数组:、
关联数组:(使用 . 符号来访问)
   访问关联数组:、、
②访问对象
创建对象:  

复制代码 代码如下:

 
class human{
private $sex;
private $name;
private $age;
public function __construct($s,$n,$a){
$this->sex=$s;
$this->name=$n;
$this->age=$a;
}
public function print_info(){
return $this->sex."--".$this->name."--".$this->age;
}
}
$tpl->assign("student",new human("male","MarcoFly",22));


给模板中的对象赋值:print_info()}>
8.Smarty模板引擎中的数学运算可以应用到模板变量中
给变量赋值
    $tpl->assign("num1",10);
    $tpl->assign("num2",5.5);
模板变量输出
     //结果10
     //结果5.5
     //结果15.5
    //结果13.025
原创文章
转载请注明:WEB开发_小飞
Statement
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Tools

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

This project is in the process of being migrated to osdn.net/projects/mingw, you can continue to follow us there. MinGW: A native Windows port of the GNU Compiler Collection (GCC), freely distributable import libraries and header files for building native Windows applications; includes extensions to the MSVC runtime to support C99 functionality. All MinGW software can run on 64-bit Windows platforms.

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

EditPlus Chinese cracked version

EditPlus Chinese cracked version

Small size, syntax highlighting, does not support code prompt function

mPDF

mPDF

mPDF is a PHP library that can generate PDF files from UTF-8 encoded HTML. The original author, Ian Back, wrote mPDF to output PDF files "on the fly" from his website and handle different languages. It is slower than original scripts like HTML2FPDF and produces larger files when using Unicode fonts, but supports CSS styles etc. and has a lot of enhancements. Supports almost all languages, including RTL (Arabic and Hebrew) and CJK (Chinese, Japanese and Korean). Supports nested block-level elements (such as P, DIV),

WebStorm Mac version

WebStorm Mac version

Useful JavaScript development tools