php var_dump()vs print_r()

时间:2010-08-04 13:50:25

标签: php arrays

在将数组吐出为字符串方面,var_dump()print_r()之间有什么区别?

13 个答案:

答案 0 :(得分:331)

var_dump函数显示有关变量/表达式的结构化信息,包括类型。递归地探索数组,其中值缩进以显示结构。它还显示哪些数组值和对象属性是引用。

print_r()以人类可读的方式显示有关变量的信息。数组值将以显示元素的格式显示。类似的符号用于对象。

示例:

$obj = (object) array('qualitypoint', 'technologies', 'Pakistan');

var_dump($obj)将在屏幕下方的输出中显示。

object(stdClass)#1 (3) {
 [0]=> string(12) "qualitypoint"
 [1]=> string(12) "technologies"
 [2]=> string(5) "Pakistan"
}

并且,print_r($obj)将在屏幕下方的输出中显示。

stdClass Object ( 
 [0] => qualitypoint
 [1] => technologies
 [2] => Pakistan
)

更多信息

答案 1 :(得分:49)

通常,print_r( )输出更好,更简洁,更容易阅读,也更人性化但不能显示数据类型。

使用print_r(),您还可以将输出存储到变量中:

$output = print_r($array, true);

var_dump()无法做到的。但var_dump()可以显示数据类型。

答案 2 :(得分:20)

var_dump()会告诉您事物的类型以及内容。

所以你会得到=> (string)"var" Example就在这里。

print_r()只输出内容。

输出=> "var" Example就在这里。

答案 3 :(得分:12)

如果你问什么时候应该使用什么,我通常使用print_r()来显示值,var_dump()用于表示变量类型的问题。

答案 4 :(得分:7)

var_dump显示有关对象/变量的结构化信息。这包括类型和值。像print_r一样,数组被递归并缩进。

print_r使用格式显示数组和对象的键和元素,显示有关值的人类可读信息。

最值得注意的是,var_dump会输出类型和值,而print_r则不会。

答案 5 :(得分:5)

var_dumpprint_r

之间存在显着差异

两个函数转储有关变量的信息,但var_dump多个参数将被转储,而print_r可以取两个参数,其中第一个参数是你要转储的变量,第二个是布尔值。

var_dump无法返回任何值,它只能转储/打印值,因为如果我们将print_r的第二个参数设置为 true,则print_r可以返回变量信息print_r的返回值将采用字符串格式。

print_r打印的信息更具可读格式,var_dump打印原始值。

print_r函数可用于许多上下文中,因为var_dump可用于调试目的,主要是因为它无法返回值。

答案 6 :(得分:4)

在输出到浏览器时,我建议将var_dump()或printr的输出放入 pre 标记。

print "<pre>";
print_r($dataset);
print "</pre>";

会给出更可读的结果。

答案 7 :(得分:2)

var_dump($var)通过提供

的其他详细信息,详细显示了详细信息
  • 值的数据类型(包括后代元素)
  • 变量中的元素数量
  • 值的长度

答案 8 :(得分:2)

太简单了。 var_dump()函数显示有关变量/表达式的结构化信息,包括其类型和值。而 print_r()以人类可读的方式显示有关变量的信息。

示例:说我们有以下数组,我们想显示其内容。

$arr = array ('xyz', false, true, 99, array('50'));

print_r()函数-显示人类可读的输出

Array
(
    [0] => xyz
    [1] =>
    [2] => 1
    [3] => 99
    [4] => Array
        (
            [0] => 50
        )
)

var_dump()函数-显示值和类型

array(5) {
  [0]=>
  string(3) "xyz"
  [1]=>
  bool(false)
  [2]=>
  bool(true)
  [3]=>
  int(100)
  [4]=>
  array(1) {
    [0]=>
    string(2) "50"
  }
}

有关更多详细信息:https://stackhowto.com/how-to-display-php-variable-values-with-echo-print_r-and-var_dump/

答案 9 :(得分:1)

对于大型数组,print_r可以显示比有用更多的信息。您可以像这样截断它,显示前2000个字符或者您需要的多个字符。

  echo "<pre>" . substr(print_r($dataset, 1), 0, 2000) . "</pre>";

答案 10 :(得分:1)

var_dump(): -

  1. 此函数显示有关包含其类型和值的一个或多个表达式的结构化信息。递归地探索数组和对象,其中值缩进以显示结构。
  2. 此函数显示变量中元素的数量。
  3. 此功能显示变量的长度。
  4. 无法返回值只打印值。
  5. 用于调试目的。
  6. 示例: -

    <?php
    $a = array(1, 2, array("a", "b", "c"));
    var_dump($a);
    ?>
    

    输出: -

       array(3) {
      [0]=>
      int(1)
      [1]=>
      int(2)
      [2]=>
      array(3) {
        [0]=>
        string(1) "a"
        [1]=>
        string(1) "b"
        [2]=>
        string(1) "c"
      }
    }
    

    print_r(): -

    1. 打印有关变量的人类可读信息。
    2. 不将变量中的元素数显示为var_dump()。
    3. 不在变量中显示变量的长度var_dump()。
    4. 如果我们在printf_r()中将第二个参数设置为true,则返回该值。
    5. 示例: -

      <pre>
      <?php
      $a = array ('a' => 'apple', 'b' => 'banana', 'c' => array ('x', 'y', 'z'));
      print_r ($a);
      ?>
      </pre>
      

      输出: -

      <pre>
      Array
      (
          [a] => apple
          [b] => banana
          [c] => Array
              (
                  [0] => x
                  [1] => y
                  [2] => z
              )
      )
      </pre>
      

答案 11 :(得分:0)

print_r()和var_dump()是PHP中用于调试目的的Array调试函数。 print_r()函数返回数组键及其成员为Array([key] = value),而var_dump()函数返回数组列表及其数据类型和长度的数组键,例如Array(array_length){[0] = string (1) 'A'}。

答案 12 :(得分:0)

我们可以使用var_dump传递多个参数 喜欢:

var_dump("array1",$array1,"array2",$array2);