Функция распечатки массива для Bitrix
nf_pp
это класс, предназначенный для эмуляции PHP-функции “print_r” с некоторыми дополнительными функциями.
Функции
- печатать скалярные переменные, массивы, объекты, ресурсы;
- выделять типы данных;
- выделение области свойств;
- визуализировать значения логических переменных и переменных NULL;
- показать тип ресурса;
- обрезать длинные нити;
- печатать древовидное представление для массивов и объектов;
- сворачивать узлы в массивах и объектах;
- свернуть целое дерево или развернуть дерево до определенного ключа;
- отображать файл и строку, в которой была вызвана функция;
- вывести время, прошедшее между вызовами функций;
- поиск по ключам и значениям (нажмите ENTER или Shift+ENTER в поле поиска для навигации).
Применение
Создаем Хелпер как описано в инструкции
Копируем содержимое файла helpers.php
в Хелпер, создаем объект и передаем ему параметры:
$pp = new nf_pp();
В метод передаем массив:
$pp->pp($val1);
$pp->pp($val2);
Можно не создавать объект, а использовать функцию быстрого доступа:
pp($val);
Опции
trimString
— Значение по умолчанию 0 (распечатывать обсалютно все). Любое число, например 1000 включит обрезку. autoCollapsed
— Сложить или развернуть дерево. Значение по умолчанию FALSE
. autoOpen
— Массив ключей или один ключ, который будет использоваться для разворачивания дерева.
Вы можете передавать параметры функции в виде массива или по одному в любом порядке, например:
pp( $val, 300, 'key' );
или
pp( $val, 'key', 0 );
или
pp( $val, 'key' );
Опции определяются типами, если передано число, то это trimString
опция. Если передано логическое значение, то это autoCollapsed
опция. Если передается строка, то это autoOpen
опция.
Примеры
Распечатать массив:
pp( $val );
Распечатать свернутый массив:
pp( $val, TRUE );
Распечатайте свернутый массив и разверните его по ключам “c” и “subarray”:
pp( $val, array( 'autoOpen' => array( 'c', 'subarray' ) ) );
Распечатайте свернутый массив и разверните его до клавиши “c”:
pp( $val, array( 'autoOpen' => array( 'c' ) ) );
или
pp( $val, 'c' );