PHP var dump () vs print r()

в чем разница между var_dump() и print_r() С точки зрения выплевывания массива как строки?

12 ответов


на var_dump функция отображает структурированную информацию о переменных / выражениях, включая его тип и стоимостью. Массивы рекурсивно исследуются со значениями, отступами для отображения структуры. Он также показывает, какие значения массива и свойства объекта являются ссылками.

на print_r() отображает информацию о переменной таким образом, чтобы ее могли прочитать люди. значения массива будут представлены в формате, который показывает ключи и элементов. Аналогичная нотация используется для объектов.

пример:

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

var_dump($obj) будет отображаться ниже вывода на экране.

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

и print_r($obj) будет отображаться ниже вывода на экране.

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

Подробнее


как правило, print_r( ) вывод лучше, лаконичнее и легче читать, он же более удобочитаемый, но не может отображать типы данных.

С print_r() вы также можете сохранить результат в переменную:

$output = print_r($array, true);

, который var_dump() не может. Еще var_dump() может отображать типы данных.


var_dump() покажет вам тип вещи, а также то, что в нем.

так что вы получите =>(string)"var" пример здесь.

print_r() будет просто выводить содержимое.

будет выходной => "var" пример здесь.


Если вы спрашиваете, когда вы должны использовать что, я обычно использую print_r() для отображения значений и var_dump() при возникновении проблем с типами переменных.


var_dump отображает структурированную информацию об объекте / переменной. Это включает в себя тип и ценностей. Как print_r массивы рекурсируются и отступы.

print_r выводит удобочитаемом информация о значениях с форматом, представляющим ключи и элементы для массивов и объектов.

самое главное, чтобы уведомление var_dump будет выводить тип, а также значения а print_r нет.


существенные различия между var_dump и print_r

функции выводит информацию о переменной, а var_dump несколько параметров, которые будут сброшены, где as print_r может принимать два параметра, из которых первый параметр является переменной, которую вы хотите сбросить, а второй-логическое значение.

var_dump не может вернуть какое-либо значение, оно может только сбрасывать / печатать значения, где as print_r может вернуть информацию о переменной, если мы установим второй параметр print_r to правда. Возвращаемое значение print_r будет строка.

информация, напечатанная на print_r гораздо больше в читаемом формате, где as var_dump печать исходных значений.

print_r функция может использоваться во многих контекстах, где as var_dump может использоваться в целях отладки в основном, поскольку он не может возвращать значение.


Я бы aditionally рекомендовал поместить вывод var_dump () или printr в pre тег при выводе в браузер.

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

даст более четкий результат.


var_dump($var) показывает подробные сведения, предоставляя дополнительные сведения о

  • тип данных значения (включая элементы-потомки)
  • количество элементов в переменной
  • длина значения

с большими массивами print_r может отображать гораздо больше информации, чем полезно. Вы можете усечь его так, показывая первые 2000 символов или сколько вам нужно.

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

вложенностями() :-

  1. эта функция отображает структурированную информацию об одном или нескольких выражениях, включая их тип и значение. Массивы и объекты рекурсивно исследуются со значениями, отступами для отображения структуры.
  2. эта функция отображает номер элемента в переменной.
  3. эта функция отображает длину переменной.
  4. не удается вернуть значение только распечатать значение.
  5. это используется для отладки цель.

пример:

<?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. верните значение, если мы установим для второго параметра значение true в printf_r().

пример:

<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>

print_r() и var_dump () - функции отладки массива, используемые в PHP для отладки. функция print_r () возвращает ключи массива и его члены в виде массива ([key] = value), тогда как функция var_dump () возвращает список массивов со своими ключами массива с типом данных и длиной, а также e.G Array(array_length){[0] = строка (1)'a'}.


мы можем передать несколько параметров с вложенностями например:

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