【问题标题】:On echo return string, on print_r return array or object in PHP在回显返回字符串上,在 print_r 上返回 PHP 中的数组或对象
【发布时间】:2015-10-01 06:46:48
【问题描述】:

我使用的一些函数在回显时返回一个字符串,类似这样。

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

【问题讨论】:

标签: php arrays string object echo


【解决方案1】:

您的my_function() 没有返回任何内容。所以在echoprint_r 中调用它没有区别。如果您 return string 形成函数并且只想显示它,那么您可以 echo 输出。但是如果你 return array from function 和 echo it 那么它会给你一个无用的输出。另一方面,如果您print_r 函数和函数返回字符串,那么它将像 echo 一样输出。但是,如果您返回数组并使用print_r 调用,那么它将显示array 更多可读。对调试很有用。

这里有更多关于 echoprint_r()

回声

  1. 输出一个或多个用逗号分隔的字符串
  2. 无返回值

print_r()

  1. 输出任何一个值的人类可读表示
  2. 不仅接受字符串,还接受其他类型,包括数组和对象,并将它们格式化为可读
  3. 调试时有用
  4. 如果给出第二个可选参数,则可以将其输出作为返回值(而不是回显)返回

【讨论】:

    【解决方案2】:

    函数永远不应该依赖于它们调用的对象,而应该依赖于它们被调用的方式。

    例如创建一个在回显上进行加法和在打印上进行减法的函数是没有意义的。这令人困惑。

    尝试使用问题 cmets 中建议的参数。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-06-15
    • 2010-11-05
    • 2023-03-25
    • 2013-07-30
    • 2013-12-12
    • 2015-09-13
    • 2014-01-31
    • 2015-07-31
    相关资源
    最近更新 更多