我使用的一些函数在echo上返回一个字符串,就像这样。
echo my_function();
这会在屏幕上打印“hello
”。
print_r( my_function() );
这会在屏幕上打印一个数组或一个对象。在这两种情况下,功能都是相同的,甚至可以在参数中使用。
这是怎么做到的?
function my_function() {
// If this function is used by echo return the string
// If this function is used by print_r return an array
$string = 'Hello';
$array = array('some', 'data');
// return $string or $array depending on
}
此函数返回echo上的图像和print_r上的对象:http://getkirby.com/docs/cheatsheet/helpers/thumb
答案 0 :(得分:0)
功能不应该取决于他们打电话给谁,而是取决于他们的召唤方式。
例如,创建一个在打印时对回显和减法进行添加的函数是没有意义的。这令人困惑。
尝试使用问题评论中建议的参数。
答案 1 :(得分:0)
您的my_function()
没有返回任何内容。因此,在echo
或print_r
中调用它不会造成任何差异。如果return
string
形成了该功能,并且您只想显示该功能,那么您可以echo
将其显示出来。但是,如果您return
array
来自函数echo
,那么它将为您提供不可用的输出。另一方面,如果你print_r
函数和函数返回字符串,那么它将像echo do一样输出。但是,如果您返回数组并使用print_r
进行调用,则会显示array
更多可读。它对调试很有用。
以下是 echo 和 print_r()
的更多信息<强>回声强>
<强>的print_r()强>