Var dump php что это
Перейти к содержимому

Var dump php что это

  • автор:

var_dump

Эта функция возвращает структурированную информацию об одном или более выражений, включая тип и значение. Массивы обрабатываются рекурсивно.

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

Если Вам нужна частная профессиональная консультация от авторов многих книг Кузнецова М.В. и Симдянова И.В., добро пожаловать в наш Консультационный Центр SoftTime.

var_dump

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

Все общедоступные, закрытые и защищённые свойства объекта будут возвращены при выводе, если только объект не реализует метод __debugInfo().

Подсказка

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

Список параметров

Выражение, которое необходимо отобразить.

Следующие выражения для отображения.

Возвращаемые значения

Функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования var_dump()

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

$b = 3.1 ;
$c = true ;
var_dump ( $b , $c );

Результат выполнения данного примера:

float(3.1) bool(true)

Смотрите также

  • print_r() — Выводит удобочитаемую информацию о переменной
  • debug_zval_dump() — Выводит строковое представление внутренней структуры zval
  • var_export() — Выводит или возвращает интерпретируемое строковое представление переменной
  • __debugInfo()

User Contributed Notes 16 notes

15 years ago

Keep in mind if you have xdebug installed it will limit the var_dump() output of array elements and object properties to 3 levels deep.

To change the default, edit your xdebug.ini file and add the folllowing line:
xdebug.var_display_max_depth=n

18 years ago

If you’re like me and uses var_dump whenever you’re debugging, you might find these two «wrapper» functions helpful.

This one automatically adds the PRE tags around the var_dump output so you get nice formatted arrays.

function var_dump_pre ( $mixed = null ) echo ‘

' ; 
var_dump ( $mixed );
echo '

‘ ;
return null ;
>

?>

This one returns the value of var_dump instead of outputting it.

function var_dump_ret ( $mixed = null ) ob_start ();
var_dump ( $mixed );
$content = ob_get_contents ();
ob_end_clean ();
return $content ;
>

?>

Fairly simple functions, but they’re infinitely helpful (I use var_dump_pre() almost exclusively now).

8 years ago

I post a new var_dump function with colors and collapse features. It can also adapt to terminal output if you execute it from there. No need to wrap it in a pre tag to get it to work in browsers.

function dump_debug ( $input , $collapse = false ) $recursive = function( $data , $level = 0 ) use (& $recursive , $collapse ) global $argv ;

$isTerminal = isset( $argv );

echo ‘‘ . «\n» ;
>

$type = ! is_string ( $data ) && is_callable ( $data ) ? «Callable» : ucfirst ( gettype ( $data ));
$type_data = null ;
$type_color = null ;
$type_length = null ;

switch ( $type ) case «String» :
$type_color = «green» ;
$type_length = strlen ( $data );
$type_data = «\»» . htmlentities ( $data ) . «\»» ; break;

case «Double» :
case «Float» :
$type = «Float» ;
$type_color = «#0099c5» ;
$type_length = strlen ( $data );
$type_data = htmlentities ( $data ); break;

case «Integer» :
$type_color = «red» ;
$type_length = strlen ( $data );
$type_data = htmlentities ( $data ); break;

case «Boolean» :
$type_color = «#92008d» ;
$type_length = strlen ( $data );
$type_data = $data ? «TRUE» : «FALSE» ; break;

case «NULL» :
$type_length = 0 ; break;

case «Array» :
$type_length = count ( $data );
>

if ( in_array ( $type , array( «Object» , «Array» ))) $notEmpty = false ;

foreach( $data as $key => $value ) if (! $notEmpty ) $notEmpty = true ;

if ( $isTerminal ) echo $type . ( $type_length !== null ? «(» . $type_length . «)» : «» ). «\n» ;

> else $id = substr ( md5 ( rand (). «:» . $key . «:» . $level ), 0 , 8 );

call_user_func ( $recursive , $value , $level + 1 );
>

> else echo $isTerminal ?
$type . ( $type_length !== null ? «(» . $type_length . «)» : «» ) . » » :
«» . $type . ( $type_length !== null ? «(» . $type_length . «)» : «» ) . «  » ;
>

> else echo $isTerminal ?
$type . ( $type_length !== null ? «(» . $type_length . «)» : «» ) . » » :
«» . $type . ( $type_length !== null ? «(» . $type_length . «)» : «» ) . «  » ;

call_user_func ( $recursive , $input );
>
?>

18 years ago
var_dump(get_defined_vars());
will dump all defined variables to the browser.
16 years ago

As Bryan said, it is possible to capture var_dump() output to a string. But it’s not quite exact if the dumped variable contains HTML code.

You can use this instead:

echo ‘

' ; // This is for correct handling of newlines 
ob_start ();
var_dump ( $var );
$a = ob_get_contents ();
ob_end_clean ();
echo htmlspecialchars ( $a , ENT_QUOTES ); // Escape every HTML special chars (especially > and < )
echo '

‘ ;
?>

12 years ago

/**
* Better GI than print_r or var_dump — but, unlike var_dump, you can only dump one variable.
* Added htmlentities on the var content before echo, so you see what is really there, and not the mark-up.
*
* Also, now the output is encased within a div block that sets the background color, font style, and left-justifies it
* so it is not at the mercy of ambient styles.
*
* Inspired from: PHP.net Contributions
* Stolen from: [highstrike at gmail dot com]
* Modified by: stlawson *AT* JoyfulEarthTech *DOT* com
*
* @param mixed $var — variable to dump
* @param string $var_name — name of variable (optional) — displayed in printout making it easier to sort out what variable is what in a complex output
* @param string $indent — used by internal recursive call (no known external value)
* @param unknown_type $reference — used by internal recursive call (no known external value)
*/
function do_dump (& $var , $var_name = NULL , $indent = NULL , $reference = NULL )
$do_dump_indent = «|    » ;
$reference = $reference . $var_name ;
$keyvar = ‘the_do_dump_recursion_protection_scheme’ ; $keyname = ‘referenced_object_name’ ;

$type = ucfirst ( gettype ( $avar ));
if( $type == «String» ) $type_color = «» ;
elseif( $type == «Integer» ) $type_color = «» ;
elseif( $type == «Double» )< $type_color = "" ; $type = "Float" ; >
elseif( $type == «Boolean» ) $type_color = «» ;
elseif( $type == «NULL» ) $type_color = «» ;

if( is_array ( $avar ))
$count = count ( $avar );
echo » $indent » . ( $var_name ? » $var_name => » : «» ) . » $type ( $count )
$indent (
» ;
$keys = array_keys ( $avar );
foreach( $keys as $name )
$value = & $avar [ $name ];
do_dump ( $value , «[‘ $name ‘]» , $indent . $do_dump_indent , $reference );
>
echo » $indent )
» ;
>
elseif( is_object ( $avar ))
echo » $indent$var_name $type
$indent (
» ;
foreach( $avar as $name => $value ) do_dump ( $value , » $name » , $indent . $do_dump_indent , $reference );
echo » $indent )
» ;
>
elseif( is_int ( $avar )) echo » $indent$var_name = $type (» . strlen ( $avar ). «) $type_color » . htmlentities ( $avar ). «
» ;
elseif( is_string ( $avar )) echo » $indent$var_name = $type (» . strlen ( $avar ). «) $type_color \»» . htmlentities ( $avar ). «\»
» ;
elseif( is_float ( $avar )) echo » $indent$var_name = $type (» . strlen ( $avar ). «) $type_color » . htmlentities ( $avar ). «
» ;
elseif( is_bool ( $avar )) echo » $indent$var_name = $type (» . strlen ( $avar ). «) $type_color » .( $avar == 1 ? «TRUE» : «FALSE» ). «
» ;
elseif( is_null ( $avar )) echo » $indent$var_name = $type (» . strlen ( $avar ). «) < $type_color >NULL
» ;
else echo » $indent$var_name = $type (» . strlen ( $avar ). «) » . htmlentities ( $avar ). «
» ;

$var = $var [ $keyvar ];
>

var_dump

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

Все общедоступные, закрытые и защищенные свойства объекта будут возвращены при выводе, если только объект не реализует метод __debugInfo() (добавлен в PHP 5.6.0).

Подсказка

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

Список параметров

Переменная, значение которой необходимо отобразить.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования var_dump()

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

$b = 3.1 ;
$c = true ;
var_dump ( $b , $c );

Результат выполнения данного примера:

float(3.1) bool(true)

Смотрите также

  • print_r() — Выводит удобочитаемую информацию о переменной
  • debug_zval_dump() — Выводит строковое представление внутреннего значения zend
  • var_export() — Выводит в браузер или возвращает интерпретируемое строковое представление переменной
  • __debugInfo()

Var dump php что это

VAR_DUMP — это функция в php, которая выводит информацию о переменной. Тип переменной и количество байт в каждом элементе.

Какие данные возвращает функция var_dump

Для того, чтобы посмотреть, что будет возвращать var_dump нам потребуется пример переменной, в которой есть , например текст:

$example = ‘Helloy world’;
Далее обернем нашу переменную в функцию var_dump
var_dump($example);

Результат работы функции var_dump

string(12) «Helloy world»

Анализ вывода функции var_dump

Если мы взглянем выше. на результат вывода данных о переменной с помощью var_dump, то увидим несколько параметров!

string → тип переменной → строка.

12 → количество символов(на самом деле байт) в строке.

«Helloy world» → содержание переменной.

Если в переменной число вывод информации var_dump

Чтобы понимать как работает var_dump в разных ситуациях, применим var_dump к переменной, в которой находится число:

$example_1 = ’51’;

Аналогично выводим результат работы функции var_dump :

var_dump($example_1);

Результат вывода информации о переменной через var_dump , если там число:

string(2) «51»

Анализ результат вывода var_dump о числе:

Первое, что вам должно броситься в глаза, почему тип переменной «string» ведь число это не строка. Все дело в кавычках. давайте кавычки уберем:

$example_2 = 51;
var_dump($example_2);

тип переменной : integer (целые числа)

Если в переменной десятичное число вывод информации var_dump

float(51.1)
Тип Float в PHP (числа с плавающей точкой)

Переменная строка(на кириллице + UTF-8) вывод информации var_dump

Интересный результат выдает var_dump к строке UTF-8! Поместим в переменную текст на кирилице

$perem = ‘Привет мир’;

string(19) «Привет мир»

Здесь мы видим информацию о нашей переменной, которая является строкой и в ней 19 символов(байт)!

Вопрос на засыпку! Почему 19, если там всего 9 букв и один пробел!?

Потому, что вместо 1 байта для английского алфавита, кириллица будет занимать 2 байта.

Переменная массив вывод информации var_dump

Теперь давайте применим var_dump к массиву!

Мы как-то писали о том, как почистить массив от пустых ячеек – и вот оттуда возьмем массив:

$arr = array(«», «1», «, «2», «, «3», «»);

Результат вывода информации о массиве с помощью var_dump

Результат вывода var_dump передать в переменную

Нам нужно передать var_dump в переменную. И например нам нужно вывести результат работы var_dump в другом месте! И нужно ли вам вообще var_dump, да еще и в переменную!?

Давайте разберемся, что это за проблема вывода var_dump в переменную!

Если мы возьмем данный сайт, и попробуем вывести что-то, то это, будет выводиться в самом верху страницы – выше логотипа… нужен ли такой вывод var_dump – конечно же нет! Нам нужно вывести данный результат, например, прямо здесь! Но если бы var_dump можно было поместить в переменную, то наступила бы красота!

Логично возникает вопрос — как бы нам внести данные вывода var_dump в переменную!

Как внести данные вывода var_dump в переменную!

У нас есть переменная $data_today , которая равна 2023-10-30 с ней и будем тренироваться с выводом var_dump в переменную

Нам нужно применить такую конструкцию:

Мы получили результат работы функции var_dump в переменную и теперь мы можем её здесь вывести! Прямо здесь:

string(10) «2023-10-30»

Выводить var_dump с помощью echo.

Совсем вам забыл рассказать, про самописную функцию var_dump, которая будет выводиться с помощью echo

Что нужно для этого!?

Назовем, как-то нашу новую функцию — пусть это будет «var_dump s » — вы можете её назвать, как вам нравится. Добавим переменную в функцию — «$var»(любую) для передачи значения в функцию.

Используем выше приведенный пример использования ob_get_contents();

В конце вернем эту переменную:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *