普通变量与保留变量

1,普通变量

一共有两种声明普通变量的方法。

  第一种:上面的例子已经使用过,即在index.php文件中使用$smarty->assign('add',$add);

  第二种:在模板文件中声明(html中),即{assign var='add'  value='值'} 

代码如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>test</title>
</head>
<body>
<!--html的注释-->
{*smarty模板的注释*}
{assign var='add'  value='www.php.cn'}
我们网站的网址是:{$add}
</body>
</html>

运行结果:

 微信图片_20180312144252.png

使用:{$add}

注意:也可以定义与使用数组。假若上面定义的add为一个一维数组,使用时即:{$add[2]},{$add['aa']},{$add.aa}等等使用方式。

2,保留变量

 Smarty中有一个特殊的变量(就是smarty)可以通过这个变量很容易就可以访问到一些环境变量。就像PHP中的超全局变量一样神奇。

      注意:在使用这个保留变量的时候:smarty是对于大小写敏感的,我们需要的是小写的smarty

例子:

一、使用smarty访问PHP中的超全局数组变量:

  1、获取$_GET     {$smarty.get.name}    获取get中的name值

  2、获取$_POST    {$smarty.post.name}   获取post中的name值

  3、获取$_COOKIE  {$smarty.cooke.name}  获取cookie中的name值

  同理,还可以获取$_SERVER, $_ENV 和 $_SESSION等等

注意:虽然Smarty提供了较方便直接访问PHP超全局变量的方法,但必须谨慎使用。 直接访问超全局变量会弄乱应用程序底层代码和模板语法。 最佳的实践是从PHP将需要的变量对模板进行赋值再使用。

二、获取当前时间戳

  {$smarty.now}其原理就是调用了time()函数

三、直接访问PHP常量

  {$smarty.const.常量名}即{$smarty.const.AGE}

PHP定义常量

微信图片_20180312154643.png微信图片_20180312154645.png

运行结果:

微信图片_20180312154534.png




四、其他

  获取配置变量:{$smarty.config}

  返回当前模板名称:{$smarty.template}

  返回当前模板对象:{$smarty.template_object}

  返回当前目录名称:{$smarty.current_dir}

  等等


继续学习
||
<?php echo "变量的声明与使用";
提交重置代码