В чем разница между var_dump()
и print_r()
с точки зрения выплескивания массива в виде строки?
Php var_dump() vs print_r()
Ответ 1
Функция 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
)
Больше информации
Ответ 2
Как правило, вывод print_r( )
более приятный, более сжатый и более легкий для чтения, а также более читаемый человеком, но не может отображать типы данных.
С помощью print_r()
вы также можете сохранить вывод в переменной:
$output = print_r($array, true);
который var_dump()
не может сделать. Тем не менее var_dump()
может отображать типы данных.
Ответ 3
var_dump()
покажет вам тип вещи, а также то, что в ней.
Итак, вы получите => (string)"var"
Пример здесь.
print_r()
будет просто выводить содержимое.
Пример: output => "var"
.
Ответ 4
Если вы спрашиваете, когда вы должны использовать что-то, я обычно использую print_r()
для отображения значений и var_dump()
для проблем с типами переменных.
Ответ 5
var_dump
отображает структурированную информацию об объекте/переменной. Это включает тип и значения. Подобно print_r
массивы рекурсируются и отступают.
print_r
отображает читаемую человеком информацию о значениях в формате, представляющем ключи и элементы для массивов и объектов.
Самое главное отметить var_dump
будет выводить тип, а также значения, пока print_r
не делает.
Ответ 6
Значительные различия между var_dump
и print_r
обе функции выгружают информацию о переменной, но var_dump
несколько параметров, которые будут сброшены, где as print_r
может принимать два параметра, из которых первый параметр - это переменная, которую вы хотите дамп, а второй - логическое значение.
var_dump
не может возвращать какое-либо значение, он может только сбросить/распечатать значения, где print_r может вернуть информацию о переменной, если мы установим второй параметр print_r
в true. Возвращаемое значение print_r
будет в формате string.
Информация, напечатанная print_r
, намного больше в читаемом формате, где var_dump
печатает необработанные значения.
print_r
может использоваться во многих контекстах, где var_dump
может использоваться в целях отладки главным образом, поскольку она не может вернуть значение.
Ответ 7
Я бы рекомендовал поместить вывод var_dump() или printr в тег pre при выводе в браузер.
print "<pre>";
print_r($dataset);
print "</pre>";
Дает более читаемый результат.
Ответ 8
var_dump($var)
показывает подробные сведения, предоставляя дополнительную информацию о
- тип данных значения (включая элементы потомка)
- количество элементов в переменной
- длина значения
Ответ 9
С большими массивами print_r может отображать гораздо больше информации, чем полезно. Вы можете обрезать его так, показывая первые 2000 символов или сколько угодно вам.
echo "<pre>" . substr(print_r($dataset, 1), 0, 2000) . "</pre>";
Ответ 10
var_dump(): -
- Эта функция отображает структурированную информацию об одном или нескольких выражениях, которые включают его тип и значение. Массивы и объекты исследуются рекурсивно со значениями, отступающими для отображения структуры.
- Эта функция отображает число элементов в переменной.
- Эта функция отображает длину переменной.
- Не удается вернуть значение только для печати значения.
- используется для целей отладки.
Пример: -
<?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(): -
- Распечатывает удобочитаемую информацию о переменной.
- Не отображать число элементов в переменной как var_dump().
- Не показывать длину переменной в переменной как var_dump().
- Возвращает значение, если мы установили второй параметр в 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>
Ответ 11
print_r() и var_dump() - функции отладки Array, используемые в PHP для целей отладки. Функция print_r() возвращает ключи массива и его элементы как Array ([key] = value), тогда как функция var_dump() возвращает список массивов с его ключами массива с типом и длиной данных, например Array (array_length) {[0] = string (1) 'а'}.
Ответ 12
Мы можем передать несколько параметров с помощью var_dump, например:
var_dump("array1",$array1,"array2",$array2);