我在模板中有一些变量,但我不知道我把它们分配到了哪里。我需要知道一个特定的变量内部是什么; 例如,假设我在 Smarty 中有一个名为 member的变量。我尝试用 {debug},但它没有工作,并没有弹出显示。
member
{debug}
如何在模板中使用类似 var_dump()的东西输出/调试智能变量?
var_dump()
在 Smarty 中将 $debugging设置为 TRUE。
$debugging
您可以使用 {php}标记
{php}
方法1(在 Smarty 3.1或更高版本中无法工作) :
{php} $var = $this->get_template_vars('var'); var_dump($var); {/php}
方法二:
{$var|@print_r}
方法三:
{$var|@var_dump}
这应该会奏效:
或者
数组需要@才能智能地针对整个事件运行修饰符,否则它会针对每个元素运行修饰符。
只需在.tpl 中使用{ debug }并查看源代码即可
值得一提的是,您可以执行 {$varname|@debug_print_var}来为变量获得类似 var_dump()的输出。
{$varname|@debug_print_var}
在聪明有内置的修饰语,你可以使用通过使用 |(单管道运营商)。像这样 {$varname|@print_r}将打印值作为 print_r($php_variable)
|
{$varname|@print_r}
print_r($php_variable)
试试聪明会话:
{$smarty.session|@debug_print_var}
{$smarty.session|@print_r}
要美化您的输出,请在 <pre> </pre>标记之间使用它
<pre> </pre>
在新款 Smarty 中,它是:
<pre> {var_dump($variable)} </pre>
调试 prestashop 1.6.x 中的智能程序:
{ddd($variable)} -> debug and die {ppp($variable)} -> debug only
另一个有用的调试标记:
如果你想要更漂亮的,我建议你
{"<?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>来登录到控制台。
<script>console.log({$varname|@json_encode})</script>
你不需要添加“ <pre>”标签
<pre>
由于 debug_print_var没有在对象中显示私有变量,所以 {$variable|var_dump}显示的更多(但格式更糟糕) !
debug_print_var
{$variable|var_dump}
为了更好的展示:
{$var|@dump}