php print r в переменную
Использование print_r,примеры:
Что такое print_r
Теперь давайте попробуем разобраться. что же написано в предыдущей строчке, как вы бы могли это объяснить!?
Функция print_r может работать со смешанными mixed expression типами переменных(массив, строка).
Вторым параметром может принимать TRUE, по умолчанию false, никак не будет реагировать при false.
Вывод массива на экран с помощью Print_r
Вывод ассоциативного массива с помощью print_r
Вывод многомерного массива с помощью print_r
Чем отличается вывод каких-то одних массивов от других!? Ответ : ничем! вывод многомерного массива через print_r, абсолютно аналогична, выводу любого другого массива!
Как вывести результат print_r в переменную
Но как поместить в переменную массив, и уже потом использовать его через echo! Непонятно!? Давайте разберемся на реальном примере, вообще зачем выводить результат работы print_r в переменную!
Естественно, будем рассматривать наш сайт именно здесь в этой точке! данные строки помещены в переменную и выводятся с помощью echo.
Но если мы поместим в переменную результат вывода print_r, то тогда, это будет совсем другое дело! Записываем переменную, которая будет равняться, функция print_r и в скобках добавляем запятую и слово true :
Результат вывода результата работы print_r в переменную
print_r() убрать при выводе массивов «Array»
В данном случае, мы видим массив с одной ячейкой под номером «0» и нам требуется вывести только содержание этой ячейки, то нужно написать такую конструкцию : пишем переменную, в которой находится массив, и добавляем ячейку в квадратных скобках :
Сообщение системы комментирования :
Форма пока доступна только админу. скоро все заработает. надеюсь.
Как вывести на экран массив php со значениями всех его элементов с помощью функции print_r
Формирование двумерного массива php
Заполнять массив тоже можно разными способами, но для простоты и наглядности используем два вложенных цикла for :
Вывод на экран с помощью функции echo
Если попробовать вывести теперь получившийся массив с помощью php функции echo так:
То получим ничего для нас не значащую информацию:
И тут мы наконец-то добрались до сути вопроса:
Как вывести на экран массив php со значениями всех его элементов с помощью функции print_r
Для вывода массива на экран вместо функции echo проще всего использовать функцию print_r :
В итоге получим список всех элементов массива с их индексами и значениями:
Но вот печалька: такой вывод в одну строчку сильно затрудняет восприятие того, что же содержится в массиве и о том, какую структуру (размерность) он вообще имеет. Дело в том, что функция print_r выдаёт форматированный вывод в консоль. Если смотреть его в браузере, то форматирование игнорируется браузером и он отдаёт всё в одну строчку.
Как вывести на экран отформатированный массив php со значениями всех его элементов с помощью функции print_r
Это наконец даст нужный результат: выведет на экран браузера массив в форматированном, удобном для восприятия и понимания виде:
Заключение:
Именно так просто и без затей можно вывести массив в браузер, используя стандартные возможности php и применив базовые знания HTML.
Ну и напоследок, код работающего скрипта, иллюстрирующего всё изложенное выше:
Надеюсь, что данная информация оказалась полезной и упростила жизнь также, как и мне. 😉
print_r
(PHP 4, PHP 5, PHP 7, PHP 8)
print_r — Выводит удобочитаемую информацию о переменной
Описание
print_r() выводит информацию о переменной в удобочитаемом виде.
Список параметров
Выражение для вывода на экран.
Возвращаемые значения
Примеры
Пример #1 Пример использования print_r()
Результат выполнения данного примера:
Пример #2 Пример использования параметра return
Примечания
Смотрите также
User Contributed Notes 36 notes
I add this function to the global scope on just about every project I do, it makes reading the output of print_r() in a browser infinitely easier.
Here is another version that parses the print_r() output. I tried the one posted, but I had difficulties with it. I believe it has a problem with nested arrays. This handles nested arrays without issue as far as I can tell.
I always use this function in my code, because most of my functions return an Array or Boolean :
?>
( print_r gives no output on FALSE and that can be annoying! )
This works around the hacky nature of print_r in return mode (using output buffering for the return mode to work is hacky. ):
The following will output an array in a PHP parsable format:
Here is a print_r that produces xml:
(now you can expand/collapse the nodes in your browser)
// replace ‘)’ on its own on a new line (surrounded by whitespace is ok) with ‘
A simple function to send the output of print_r to firebug.
The script creates a dummy console object with a log method for when firebug is disabled/not available.
This is an alternative for printing arrays. It bolds array values.
I was having problems using print_r because I didn’t like the fact that if tags where included in the array it would still be parsed by the browsers.
Heres a simple fix for anyone who is having the same problem as I did. This will output your text properly for viewing through the browser instead of the browser’s «view source» or CLI.
A slight modification to the previous post to allow for arrays containing mutli line strings. haven’t fully tested it with everything, but seems to work great for the stuff i’ve done so far.
$output = ‘
Array
(
[a] => apple
[b] => banana
[c] => Array
(
[0] => x
[1] => y
[2] => z
[3] => Array
(
[nest] => yes
[nest2] => Array
(
[nest] => some more
asffjaskkd
)
[nest3] => o rly?
)
)
)
?>
This should output
print_r is used for debug purposes. Yet I had some classes where I just wanted the values coming out of the database, not all the other crap. thus i wrote the following function. If your class has an toArray function, that one will be called otherwise it will return the object as is. print_neat_classes_r is the function that should be called!
Here is a print_r() clone but support max level limit.
When we want to print a big object, this will help us get a clean dumping data.
$test = new testClass ;
testClass Object
(
[a:protected] => aaa
[b:testClass:private] => bbb
[c] => Array
(
[0] => 1
[1] => 2
[2] => Array
*MAX LEVEL*
[d:static] => ddd
[e:protected:static] => eee
[testClass] =>
*RECURSION*
You cannot use print_r(), var_dump() nor var_export() to get static member variables of a class. However, in PHP5 you can use Reflection classes for this:
I use this all the time when debugging objects, but when you have a very large object with big arrays of sub-objects, it’s easy to get overwhelmed with the large amount of output. sometimes you don’t want to see absolutely every sub-object.
I made this function to debug objects while «hiding» sub-objects of certain types. This also color codes the output for a more readable printout.
If you have to catch the output without showing it at all at first (for example, if you want to append the print_r output to a file), you can do this:
Another slight modification to the previous post to allow for empty array elements
my take on the highlighted markupped debug function:
/**
* print_array()
* Does a var_export of the array and returns it between » );
>
?>
For those of you needing to print an array within a buffer callback function, I’ve created this quick function. It simply returns the array as a readable string rather than printing it. You can even choose whether to return it in normal text-mode or HTML. It’s recursive, so multi-dimensial arrays are supported. I hope someone finds this useful!
Here’s a PHP version of print_r which can be tailored to your needs. Shows protected and private properties of objects and detects recursion (for objects only!). Usage:
test Object (
[var1] => a
[var2:protected] => b
[var3:private] => c
[array:protected] => Array (
[0] => x
[1] => y
[2] => z
)
[recursiveRef] => *RECURSION*
[anotherRecursiveRef] => stdClass Object (
[recursiveRef] => *RECURSION*
)
)
Another attempt that tries to overcome the memory blowout when the passed in data has mutual recursion.
I include the entire function below for completeness, but all credit to Matt, the original author, Thank You.
We had an interesting problem dumping an object that
contained embedded HTML. The application makes use
of buffer manipulation functions, so print_r’s 2nd argument
wasn’t helpful. Here is how we solved the problem:
Функция print_r()
Функция print_r – выводит удобочитаемую информацию о переменной, используется при отладке программ.
Давайте рассмотрим пример, как работает эта функция:
В этом простом примере функция print_r просто вернула значение переменной. Пользы от функции print_r в данном случае мало, но её используют обычно для просмотра массивов.
В следующем примере мы используем функцию print_r для просмотра массива:
В данном случа мы передали в функцию массив, в который вложили другой массив. Полученный результат читать не очень удобно, так как браузер не показывает переносы строк. Чтобы увидеть обещенный удобочитаемый результат, нужно просмотреть html-код страницы, или добавить тег pre перед функцией.
В следующем примере мы только добавим тег pre к предыдущему, чтобы увидеть отличия:
Теперь результат действительно удобочитаемый.
Перехват вывода print_r
Давайте рассмотрим пример перехвата вывода функции print_r() :
Результат работы этого кода полностью аналогичен предыдущему примеру.
Функции print_r и var_dump
Функция print_r() выводит удобочитаемую, но не полную информацию о переменной. Например попробуем вывести несуществующую переменную:
Функция print_r() тут ничего не вывела.
При отладке программ, а функции print_r() и var_dump() используются при отладке, иногда важно знать типы переменных, а иногда хочется увидеть красиво представленный массив без лишней информации. В зависимости от этого и пользуются той или иной функцией.
PHP — print_r и var_dump, ускоряем работу простыми функциями
В php есть жизненно необходимые функции, без которых разработчику просто не обойтись. Речь пойдет о print_r и немного про var_dump 🙂
Зачем нужны print_r и var_dump?
print_r чаще всего используют для массивов и основной задачей является именно узнать, какие ключи (если это ассоциативный массив или с большим уровнем вложенности многомерный) и значения находятся в массиве. Записывается следующим образом:
Нам на экраны выдаст следующий результат:
Несмотря на свою простоту, данный массив сложно читается, а если бы его структура состояла из нескольких уровней, то найти нужную информацию было бы очень затруднительно. К счастью, в HTML есть тег, который поможет с этим справиться, это тег pre:
Как видно из кода, print_r записывается между тегами pre, и в результате видим следующую картину:
Особенность тега pre еще и в том, что он отображает все символы пробелов, если вы указываете много пробелов, они записываются как один:
«По умолчанию, любое количество пробелов идущих в коде подряд, на веб-странице показывается как один.»
То есть, такая запись:
Для массивов считаю что print_r это инструмент номер один 🙂
Зачем нужен var_dump?
Для обычных переменный, которые содержат строки, числа и т.д. есть простые способы вывода — echo и print. Но иногда этого недостаточно, в PHP у каждого значения есть свой тип. Есть правда неприятная особенность, тип может меняться, и запись:
Выдаст следующее значение:
Хотя мы передали одно число и одну строку. var_dump позволяет узнать к какому типу данных относится значение:
int сокращение от integer — целое число. Записывается не сложнее чем print_r:
Тип данных это важная вещь, но лично я print_r`ом пользуюсь гораздо чаще.
print_r и var_dump в 1С-Битрикс
В битриксе есть файл, который выполняется при каждой загрузке страницы — init.php, и для того чтобы каждый раз не писать много кода, можно записать 2 простые функции:
После записи можно передавать переменную, и что самое главное, массив. Запись для вызова будет следующая:
При работе с языком программирования PHP, это базовые вещи, которые помогут сэкономить ваше время :).
автор: Dmitriy
Занимаюсь веб-разработкой с 2011 года. Посмотреть некоторые из моих работ, а также узнать чуть больше обо мне, вы можете на forwww.ru.
— Создание сайтов на 1С-Битрикс любой сложности
— Вёрстка макетов Figma, Photoshop, Zeplin
— Поддержка проектов на Битриксе
— Разработка нового функционала для сайта
— Парсинг данных
— Выгрузка из файлов в формате XML, YML, XLS, XLSX, CSV, JSON
— Интеграция по API со сторонними сервисами
и многое другое