如何像 PHP var _ dump ()那样在 Smarty 中调试变量

我在模板中有一些变量,但我不知道我把它们分配到了哪里。我需要知道一个特定的变量内部是什么; 例如,假设我在 Smarty 中有一个名为 member的变量。我尝试用 {debug},但它没有工作,并没有弹出显示。

如何在模板中使用类似 var_dump()的东西输出/调试智能变量?

300212 次浏览

在 Smarty 中将 $debugging设置为 TRUE。

您可以使用 {php}标记

方法1(在 Smarty 3.1或更高版本中无法工作) :

{php}


$var =
$this->get_template_vars('var');
var_dump($var);


{/php}

方法二:

{$var|@print_r}

方法三:

{$var|@var_dump}

这应该会奏效:

{$var|@print_r}

或者

{$var|@var_dump}

数组需要@才能智能地针对整个事件运行修饰符,否则它会针对每个元素运行修饰符。

只需在.tpl 中使用{ debug }并查看源代码即可

值得一提的是,您可以执行 {$varname|@debug_print_var}来为变量获得类似 var_dump()的输出。

在聪明有内置的修饰语,你可以使用通过使用 |(单管道运营商)。像这样 {$varname|@print_r}将打印值作为 print_r($php_variable)

试试聪明会话:

{$smarty.session|@debug_print_var}

或者

{$smarty.session|@print_r}

要美化您的输出,请在 <pre> </pre>标记之间使用它

在新款 Smarty 中,它是:

<pre>
{var_dump($variable)}
</pre>

调试 prestashop 1.6.x 中的智能程序:

{ddd($variable)} -> debug and die


{ppp($variable)} -> debug only

另一个有用的调试标记:

{debug}

如果你想要更漂亮的,我建议你

{"<?php\n\$data =\n"|@cat:{$yourvariable|@var_export:true|@cat:";\n?>"}|@highlight_string:true}

只需用你的变量替换 你的变量

在智能 V3里你可以用这个

{var_dump($variable)}

我更喜欢使用 <script>console.log({$varname|@json_encode})</script>来登录到控制台。

你不需要添加“ <pre>”标签

由于 debug_print_var没有在对象中显示私有变量,所以 {$variable|var_dump}显示的更多(但格式更糟糕) !

为了更好的展示:

{$var|@dump}