Php echo print var dump

Как вывести массив в PHP: 6 способов с примерами

Массив в PHP (от англ. Array) — это глобальный объект для хранения набора данных упорядоченным образом, который регламентирует соответствие между ключом и значением. Такой упорядоченный список элементов всегда имеет собственный ключ — он называется индексом, а каждое значение в такой коллекции данных называется элементом. Тип array, обычно, формируется соответствующей конструкцией (array). В качестве параметров она принимает любое количество пар “ключ” / “значение”. Синтаксис такой:

array( key0 => value, key1 => value2, key2 => value3, . )

(Запятая сразу после последнего элемента может не использоваться)

Простыми словами, массив в PHP — это набор определённых данных, объединенный под каким-либо названием (иначе говоря, в пределах одной переменной доступно несколько элементов).

Для чего используется вывод массива

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

PHP предоставляет несколько способов, которые можно использовать для вывода объекта типа array. Некоторые из них вполне универсальные, например, функция print_r(), другие — более узкоспециализированные. Давайте разберём каждый из таких способов и посмотрим, что лучше всего работает для вывода массива.

1 способ: функции print_r() и var_dump(). Сравнение

var_dump() и print_r() — обе функции можно успешно использовать для отображения содержимого переменной. Однако, у них есть несколько ключевых различий. О них и пойдёт речь ниже.

var_dump()

Функция var_dump() используется для отображения типа данных и значения переменной. Она также показывает количество элементов в объекте типа array и выводит его свойства.

var_dump() предоставляет более подробную информацию о переменной (по сравнению с print_r).

Пример использование функции для вывода:

$array = array( 'Moscow', 'Brest', 'Tel Aviv', 'Anaheim', 'Haapsalu', ); echo ''; var_dump($array); echo '';
array(5) < [0]=>string(4) "Moscow" [1]=> string(5) "Brest" [2]=> string(4) "Tel Aviv" [3]=> string(5) "Anaheim" [4]=> string(5) "Haapsalu" >

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

print_r() предоставляет менее подробную информацию о переменной (по сравнению с var_dump).

$array = array( 'Moscow', 'Brest', 'Tel Aviv', 'Anaheim', 'Haapsalu', ); echo ''; print_r($array); echo '';
Array ( [0] => Moscow [1] => Brest [2] => Tel Aviv [3] => Anaheim [4] => Haapsalu )

Давайте сравним обе функции:

  • var_dump() — возвращает тип данных и значение переменной, а print_r() — только содержимое переменной.
  • var_dump() может отображать все свойства и значения объекта (включая приватные, защищенные свойства и методы). А вот print_r() выводит только публичные свойства и значение var_dump.
  • var_dump() более полезна для отладки, а print_r() — для отображения информации.
Читайте также:  Методы класса log java

В целом, var_dump() более «мощная» и предоставляет больший объём информации о переменной. Функция print_r() же — более простая и предоставляет менее подробные данные, но зато в более читабельном формате.

var_dump() разумнее использовать в случаях, когда нужно изучить структуру переменной и ее тип данных, а print_r() — когда нужно отобразить содержимое переменной в удобочитаемом формате.

2 способ: функция var_export()

Функция позволяет вернуть строковое представление переменной.

  • Если параметр$return не установлен в true — происходит возврат null и в этом случае переменная отображается на экране.
  • Если параметр $ return установлен в true — функция вернет структурированное представление переменной и не будет отображаться на экране.
$array = array( 'Moscow', 'Brest', 'Tel Aviv', 'Anaheim', 'Haapsalu', ); echo ''; echo var_export($array); echo '';
array ( 0 => 'Moscow', 1 => 'Brest', 2 => 'Tel Aviv', 3 => 'Anaheim', 4 => 'Haapsalu', )

Таким образом, var_export() имеет сходство с var_dump() в том, что обе они получают структурированную информацию о переменных. Но если var_export() может вернуть эту информацию в читаемой парсером PHP форме, var_dump() — не может. Говоря более простым языком, возвращаемое значение функции var_export() может быть использовано в дальнейших вычислениях, в отличие от var_dump.

Быстро взглянем на синтаксис функции:

var_export($переменная, $return = false)

Не знаете с чего начать обучение? Прежде чем браться за изучение полноценного языка программирования PHP, разумно будет пройти курс «Веб-разработчик». Если PHP кажется слишком сложным — запишитесь на курс «Основы вёрстки». В указанных курсах вы получите базис для дальнейшего освоения не только PHP но и других языков программирования.

3 способ: цикл foreach

Этот способ идеален, когда требуется поэлементный перебор внутри объекта типа array. Например, вот так:

$array = array( 'Moscow', 'Brest', 'Tel Aviv', 'Anaheim', 'Haapsalu', ); foreach ($array as $row)
Moscow 
Brest
Tel Aviv
Anaheim
Haapsalu

Цикл foreach очень важен в разрезе работы с массивом, поэтому нужно сказать о нем подробнее.

Foreach — это тип цикла. Он обеспечивает простой способ итерации по массиву. Проще всего показать, как это всё работает, на примере кода. Начнем с синтаксиса:

$arr = array('value1', 'value2', 'value3');

Мы можем получить доступ к отдельному элементу этого массива с помощью $arr[index], где index — ключ. Обратите внимание: наш объект-массив автоматически пронумерован, поэтому ключами являются целые числа, начиная с 0. Вот так:

$arr[0] == 'value1'. Foreach дает нам простой способ итерации: foreach($arr as $value) < echo $value . PHP_EOL; // PHP_EOL — константа конца строки, которая может быть \n или 
>

Это еще не все. Иногда значения недостаточно и нужно знать его ключ. Причем не всегда этот ключ является целым числом. Это может быть и строка, например. Так что давайте воспользуемся другим объектом типа array:

$arr = array ( 'key1' => 'value1', 'key2' => 'value2', 'key3' => 'value3' );
key1 = value1 key2 = value2 key3 = value3

На этом примере видно, что можно получить не только значение, но и ключ каждого элемента массива. Это может быть особенно полезно при модификации объекта типа array в блоке foreach, например.

Читайте также:  Java substring and replace

Немного об объектах

  • С помощью foreach можно перебирать не только простые массивы, но и свойства объектов.
  • Foreach будет перебирать все видимые свойства объекта, используя тот же синтаксис, что и выше ($key — имя свойства, а $value — значение свойства).

Видимость — ключевой момент, который нужно учитывать. Видимость свойств может зависеть от того, где именно находится foreach, но это большая тема для другой статьи.

Внутренний указатель

До PHP 7-й версии в foreach использовался внутренний указатель — это скрытая переменная, которая указывает на текущий элемент. В PHP 7 и последующих версиях языка произошли значительные изменения, но foreach по-прежнему функционирует как раньше.

4 способ: цикл for

Этот способ вывода можно смело рекомендовать в случаях, когда последовательность индексов является непрерывной. Цикл используется для выполнения кода определённое количество раз.

$array = array( 'Moscow', 'Brest', 'Tel Aviv', 'Anaheim', 'Haapsalu', ); for ($n = 0; $n
1.Moscow 
2.Brest
3.Tel Aviv
4.Anaheim
5.Haapsalu

Теперь детальнее посмотрим, как устроен цикл for. Взгляните на эту конструкцию:

for(INITIALISATION; TERMINATION; ITERATION)

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

for($i = 0; $i < 10; $i++) < echo "squared language-php">$count = 20; for(;$count > 0; $count--)

И можно даже поместить более одного оператора в секции инициализации, завершения и инкремента цикла.

for($i = 0, $count=10, setStart();$count > $i; $i++, $count--) < >function setStart() < // тут что-нибудь полезное в начале цикла >

5 способ: цикл while

Этот способ вывода похож на предыдущий, но у него иной синтаксис. While один раз проходит через блок кода, а затем — повторяет цикл до тех пор, пока заданное условие не будет истинно.

Цикл while можно использовать точно так же, как мы используем цикл for.

$array = array( 'Moscow', 'Brest', 'Tel Aviv', 'Anaheim', 'Haapsalu', ); $index = 0; while ($index
1.Moscow 
2.Brest
3.Tel Aviv
4.Anaheim
5.Haapsalu

Мы разобрали несколько видов циклов. Чтобы не запутаться — ещё раз подытожим разницу между ними:

  • Цикл for используетя для выполнения кода определенное количество раз.
  • Цикл foreach — для итерации объекта типа array и доступа к каждому его элементу по очереди.
  • Цикл while используется для выполнения кода до тех пор, пока заданное условие не станет истинно.
  • Цикл do. while похож на цикл while, за исключением того, что код в цикле всегда выполняется хотя бы один раз до проверки условия.

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

Читайте также:  Html адрес что это

6 способ: функция implode()

Функция implode в PHP используется для объединения элементов массива в строку. Другими словами, её можно использовать, если нужно объединить элементы объекта array в строку и при этом задействовать separator (разделитель)

$array = array( 'Moscow', 'Brest', 'Tel Aviv', 'Anaheim', 'Haapsalu', ); echo implode("\r\n", $array);
Moscow 
Brest
Tel Aviv
Anaheim
Haapsalu

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

Функцию implode в PHP легко запомнить как «преобразование массива в строку». Простыми словами, она принимает объект типа array и возвращает строку. Функция соединяет все элементы массива и возвращает полученную строку, которую можно поместить в переменную.

Предположим, у вас есть объект типа array следующего вида

…и нам нужно объединить его в строку, поставив разделитель ‘-‘ между каждым элементом. Вот простое и элегантное решение, как как это сделать:

Таким образом, строковая переменная $str будет содержать:

Синтаксис функции implode():

Источник

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

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

echo

Языковая конструкция echo без проблем может выводить на страницу значение числовой или строковой перемененной. Также она может вывести значение переменной в формате DateTime, преобразовав его в строку. Но если сделать

var_dump

Функция var_dump печатает выводит содержание переменной. Заодно указывает типы данных, к которым относятся переменные. Попробуем её на практике:

array(3) < [0] =>int(5) [1] => bool(false) [2] => string(8) "Мышь" >

Функция var_dump выводит переменную с переносами строк. Поэтому обрамить результат вывода в тег pre, то код станет легче воспринимать. Попробуем сделать так

array(3) < [0] =>int(5) [1] => bool(false) [2] => string(8) "Мышь" >

В отличии от echo функция var_dump выводит абсолютно все типы данных. Часто помогает в разработке и отладке кода.

Функция print_r — это аналог функции var_dump, но в её выводе нет указания на тип данных. Попробуем её на практике:

Если вместо второго элемента массива «false» поставить true, то будет выводиться единица, а не пустое место:

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

Если Вы уже прочитали статью «Функции в PHP», то сможете догадаться, что лучше всего для вывода переменной сделать функцию-обёртку. Выберем для этих целей именно print_r, потому что зачастую print_r используется чаще, чем var_dump. Попробуем сделать это:

Всё готово! Теперь во время отладки и разработки можно пользоваться функцией PrintObject( ), чтобы вывести содержание переменной. Но на реальных сайтах может возникнуть небольшая проблема со стилями, которые будут влиять на содержимое блока . Эти стили можно переопределить. Поэтому чуть доработаем пример:

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

Источник

Оцените статью