it-swarm.com.ru

php var_dump () vs print_r ()

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

276
ina

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

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

Пример:

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

Больше информации

327
Sarfraz

Как правило, вывод print_r( ) приятнее, лаконичнее и проще для чтения, он более читабелен, но не может отображать типы данных. 

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

$output = print_r($array, true);

что var_dump() не может сделать. Тем не менее var_dump() может отображать типы данных.

49
gilzero

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

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

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

Будет выводить => "var"Пример здесь.

20
David Yell

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

12
Danny Nimmo

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

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

Самое важное, на что нужно обратить внимание, это var_dump будет выводить тип и значения, а print_r - нет.

7
Josh K

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

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

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

Информация, напечатанная с помощью print_r, гораздо больше в удобочитаемом формате, где var_dump печатает необработанные значения.

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

5
Akshay Khale

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

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

Даст более читаемый результат.

4
Christian Nagel

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

  • тип данных значения (включая элементы-потомки)
  • количество элементов в переменной
  • длина значения
2
ʞɔıɥʇɹɐʞ ouɐɯ

var_dump (): -

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

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

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

Мы можем передать несколько параметров с помощью var_dumplike:

var_dump("array1",$array1,"array2",$array2);
0
Jasbir Rana

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

0
Mahesh Chaudhary