我有一个php文件,其中包含一些本地和全局变量(例如$ foo)
从这个文件中调用一个聪明的对象
如何在不更改PHP文件的情况下从smarty脚本访问$ foo?
由于
答案 0 :(得分:9)
如果你有一个名为BASE的常量变量,并且定义如下:
define('BASE', 'Boise');
您可以通过以下方式访问smarty中的变量:
$smarty.const.BASE
答案 1 :(得分:5)
您曾经能够通过使用{php}{/php}
标记解决这个问题,但由于不推荐使用,现在您必须通过$smarty->assign()
分配变量,唯一的例外是常量和服务器您仍然可以通过$smarty
对象直接访问的变量。
(如果您愿意,也可以重新启用{php}
代码,并且不关心他们首先被禁用的潜在安全原因。)
$_GET
,$_POST
,$_COOKIE
,$_SERVER
,$_ENV
和$_SESSION
等任何请求变量均可通过{ {1}}对象。
由于这个原因 - 我可以通过$smarty
对象轻松访问我使用的大多数数据,而无需创建大量(复制)变量。
例如:
$smarty
{$smarty.const.MY_CONST_VAL}
// Everything in $_SERVER {$smarty.server.REQUEST_METHOD}
// Everything in $_SESSION可用答案 2 :(得分:4)
你做不到。你必须在PHP文件中将它分配给smarty。
$smarty->assign('foo', $foo);