我有一个php文件,其中包含一些局部和全局变量(例如$foo)
从该文件中调用一个smarty对象
如何在不更改PHP文件的情况下从smarty脚本访问$foo?
感谢
如果您有一个名为BASE的常量变量,并且定义如下:
define('BASE', 'Boise');
您可以通过以下方式智能地访问变量:
$smarty.const.BASE
您过去可以通过使用{php}{/php}
标记来绕过这一点,但由于这一点已被弃用,现在您必须通过$smarty->assign()
分配变量,唯一的例外是常量和服务器变量,您仍然可以通过$smarty
对象直接访问这些变量。
(如果您愿意并且不关心最初禁用{php}
标记的潜在安全原因,也可以重新启用它们)。
任何请求变量,例如$_GET
、$_POST
、$_COOKIE
、$_SERVER
、$_ENV
和$_SESSION
,都可以通过$smarty
对象获得。
因此,我使用的大多数数据都可以通过$smarty
对象简单地访问,而不必创建大量(复制的)变量。
例如:
- 访问常量:
{$smarty.const.MY_CONST_VAL}
- 访问$_SERVER var:
{$smarty.server.REQUEST_METHOD}
//可以访问$_SERVER中的所有内容 - 从$_SESSION:
{$smarty.session.MY_SESSION_VAL}
//获取$_SESSION中的所有内容都可用
你不能。您必须在PHP文件中将其分配给smarty。
$smarty->assign('foo', $foo);