Вывод значения переменной в PHP (echo, print_r, var_dump)

В PHP есть несколько способов вывести значениепеременной, но далеко не все умеют работать со всеми типами данных. Рассмотрим разные способы.

echo

Языковая конструкция echo без проблем может выводить на страницу значение числовой или строковой перемененной. Также она может вывести значение переменной в формате DateTime, преобразовав его в строку. Но если сделать
<?php 
   echo array(1, 2, 3);
?>
На экран будет выведено:
Array
Поэтому в качестве универсального способа для вывода конструкция echo не подходит.

var_dump

Функция var_dump печатает выводит содержание переменной. Заодно указывает типы данных, к которым относятся переменные. Попробуем её на практике:
<?php 
   $a = array(5, false, 'Мышь');
   var_dump($a);
?>
Результат будет следующим
array(3) { [0]=> int(5) [1]=> bool(false) [2]=> string(8) "Мышь" } 
Функция var_dump выводит переменную с переносами строк. Поэтому обрамить результат вывода в тег pre, то код станет легче воспринимать. Попробуем сделать так
<?php 
   $a = array(5, false, 'Мышь');
   echo '<pre>';
   var_dump($a);
   echo '</pre>';
?>
Результат:
array(3) {
   [0] =>  int(5)
   [1] =>  bool(false)
   [2] =>  string(8) "Мышь"
}
В отличии от echo функция var_dump выводит абсолютно все типы данных. Часто помогает в разработке и отладке кода.

print_r

Функция print_r - это аналог функции var_dump, но в её выводе нет указания на тип данных. Попробуем её на практике:
<?php 
   $a = array(5, false, 'Мышь');
   echo '<pre>';
   print_r($a);
   echo '</pre>';
?>
Результат будет такой:
Array
(
   [0] => 5
   [1] => 
   [2] => Мышь
)
Если вместо второго элемента массива "false" поставить true, то будет выводиться единица, а не пустое место:
Array
(
   [0] => 5
   [1] => 1
   [2] => Мышь
)

Всё в одной удобной функции

Если Вы уже прочитали статью "Функции в PHP", то сможете догадаться, что лучше всего для вывода переменной сделать функцию-обёртку. Выберем для этих целей именно print_r, потому что зачастую print_r используется чаще, чем var_dump. Попробуем сделать это:
<?php
   function PrintObject($object){
      echo '<pre>';
      print_r($object);
      echo '</pre>';
   }
?>
Всё готово! Теперь во время отладки и разработки можно пользоваться функцией PrintObject( ), чтобы вывести содержание переменной. Но на реальных сайтах может возникнуть небольшая проблема со стилями, которые будут влиять на содержимое блока <pre>. Эти стили можно переопределить. Поэтому чуть доработаем пример:
<?php
   function PrintObject($object){
      echo '<pre style="background-color:#fff; color:#000; font-size:10px; text-align:left; line-height: 15px;" >';
      print_r($object);
      echo '</pre>';
   }
?>
Этих стилей будет достаточно, чтобы выводить читаемый результат на вёрстке практически любой сложности.
MouseDC.ru - хостинг, виртуальный хостинг, покупка доменов, проверка доменов, WHOIS, покупка SSL сертификатов, доработка сайтов, сопровождение сайтов, разработка сайтов, техподдержка сайтов
Была ли эта статья полезна? Есть вопрос?
Cмотрите другие статьи: