Php get var dump

var_dump

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

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

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

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

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

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

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

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

Примеры

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

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

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

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

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

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

User Contributed Notes 16 notes

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

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

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 ;

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 );
>
?>

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.

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 '

‘ ;
?>

/**
* 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 ). «
» ;

Источник

Php get var dump

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Источник

var_dump

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

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

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

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

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

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

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

Примеры

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

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

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

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

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

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

Источник

Читайте также:  Python чтение xml файла
Оцените статью