В php есть жизненно необходимые функции, без которых разработчику просто не обойтись. Речь пойдет о print_r и немного про var_dump 🙂
Зачем нужны print_r и var_dump?
print_r чаще всего используют для массивов и основной задачей является именно узнать, какие ключи (если это ассоциативный массив или с большим уровнем вложенности многомерный) и значения находятся в массиве. Записывается следующим образом:
<? $array = array(1,2,3,4,5,6,7,8,9); print_r($array); ?>
Нам на экраны выдаст следующий результат:
Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 [5] => 6 [6] => 7 [7] => 8 [8] => 9 )
Несмотря на свою простоту, данный массив сложно читается, а если бы его структура состояла из нескольких уровней, то найти нужную информацию было бы очень затруднительно. К счастью, в HTML есть тег, который поможет с этим справиться, это тег pre:
echo '<pre>'; print_r($arg); echo '</pre>';
Как видно из кода, print_r записывается между тегами pre, и в результате видим следующую картину:
Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 [5] => 6 [6] => 7 [7] => 8 [8] => 9 )
Особенность тега pre еще и в том, что он отображает все символы пробелов, если вы указываете много пробелов, они записываются как один:
“По умолчанию, любое количество пробелов идущих в коде подряд, на веб-странице показывается как один.”
То есть, такая запись:
Привет как дела?
Выдаст:
Привет как дела?
Для массивов считаю что print_r это инструмент номер один 🙂
Зачем нужен var_dump?
Для обычных переменный, которые содержат строки, числа и т.д. есть простые способы вывода – echo и print. Но иногда этого недостаточно, в PHP у каждого значения есть свой тип. Есть правда неприятная особенность, тип может меняться, и запись:
echo $a = 15 + '19';
Выдаст следующее значение:
34
Хотя мы передали одно число и одну строку. var_dump позволяет узнать к какому типу данных относится значение:
int(34)
int сокращение от integer – целое число. Записывается не сложнее чем print_r:
echo '<pre>'; var_dump($arg); echo '</pre>';
Тип данных это важная вещь, но лично я print_r`ом пользуюсь гораздо чаще.
print_r и var_dump в 1С-Битрикс
В битриксе есть файл, который выполняется при каждой загрузке страницы – init.php, и для того чтобы каждый раз не писать много кода, можно записать 2 простые функции:
<? function pr($arg){ echo '<pre>'; print_r($arg); echo '</pre>'; } function vd($arg) { echo '<pre>'; var_dump($arg); echo '</pre>'; }
После записи можно передавать переменную, и что самое главное, массив. Запись для вызова будет следующая:
vd($a);
При работе с языком программирования PHP, это базовые вещи, которые помогут сэкономить ваше время :).