【问题标题】:How to Display output from snippet without using echo如何在不使用 echo 的情况下显示片段的输出
【发布时间】:2011-06-07 15:57:36
【问题描述】:
modx 中关于 sn-ps 的文档:http://rtfm.modx.com/display/revolution20/Snippets
在文档顶部附近它说:注意我们是如何返回代码而不是回显内容的。切勿在片段中使用 echo - 始终返回输出。
这不显示任何内容:
return $product_attribute $product_info[0][$column_name];
这确实显示:
echo $product_attribute $product_info[0][$column_name];
如果我无法回显内容,我该如何让它在 html 页面中打印?
【问题讨论】:
标签:
php
modx
modx-revolution
【解决方案1】:
这基本上意味着您可以echoreturned 值而不是echo 函数本身的值。在 OOP 编程中,对屏幕的回显(或打印)受到严格监控。
比如我有这个功能
function testExample($var) {
return $var*2;
}
所以当我需要回应它时,我只需要
echo testExample(5);
而不是这个(不好的做法)
function testExample($var) {
echo $var*2;
}
原因是当你在函数中打印值时,你只能使用那个函数来打印值,这根本不是可重用的。但是通过返回它,您现在可以将其用于打印、分配给另一个变量或重新计算它。
【解决方案2】:
据我从注释中了解到,有一个惯例是不在函数内部使用echo,而是返回值并可能在之后回显它。
其他打印可能性是:
print $your_variable;
或die($your_variable);
【解决方案3】:
return 用于从函数/方法等返回值
modx 的snippet 功能实际上只是一个函数/类包装器。