我有一个php文件,其中包含一些本地和全局变量(例如$ foo)
从此文件调用smarty对象。
如何从smarty脚本访问$ foo而不更改PHP文件?从smarty访问PHP文件的变量(本地或全局)
谢谢
我有一个php文件,其中包含一些本地和全局变量(例如$ foo)
从此文件调用smarty对象。
如何从smarty脚本访问$ foo而不更改PHP文件?从smarty访问PHP文件的变量(本地或全局)
谢谢
你不能。您必须将其分配给PHP文件中的smarty。
$smarty->assign('foo', $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}
{$smarty.server.REQUEST_METHOD}
// Everything in $_SERVER是访问{$smarty.session.MY_SESSION_VAL}
// Everything in $_SESSION可用
您需要将变量分配给smarty对象,否则smarty将无法访问它。没有魔术棒来解决这个问题。 – rdlowrey 2012-01-27 15:04:00