Тавлинка printthread php t
В чем разница между echo, print и print_r в PHP?
Я использую echo и print_r много, и почти никогда не использую print .
Я чувствую, что echo – это макрос, а print_r – псевдоним var_dump .
Но это не стандартный способ объяснить различия.
print и echo более или менее одинаковы; они являются языковыми конструкциями, отображающими строки. Различия тонкие: print имеет возвращаемое значение 1, поэтому его можно использовать в выражениях, тогда как echo имеет тип возврата void ; echo может принимать несколько параметров, хотя такое использование редко; echo немного быстрее, чем print . (Лично я всегда использую echo , никогда не print .)
var_dump выводит подробный дамп переменной, включая ее тип и тип любых подэлементов (если это массив или объект). print_r печатает переменную в более понятной для человека форме: строки не цитируются, информация о типе опущена, размеры массива не указаны и т. д.
var_dump обычно более полезен, чем print_r при отладке, по моему опыту. Это особенно полезно, когда вы точно не знаете, какие значения / типы у вас есть в переменных. Рассмотрим эту тестовую программу:
С print_r вы не можете определить разницу между 0 и 0.0 , или false и » :
эхо
- Выводит одну или несколько строк, разделенных запятыми
Нет возвращаемого значения
например, echo «String 1», «String 2»
Распечатать
- Выводит только одну строку
Возвращает 1 , поэтому его можно использовать в выражении
например, print «Hello»
или, if ($expr && print «foo»)
print_r ()
- Выводит человеко-читаемое представление любого значения
- Принимает не только строки, но и другие типы, включая массивы и объекты, форматируя их для чтения
- Полезно при отладке
- Может возвращать свой вывод в качестве возвращаемого значения (вместо эха), если задан второй необязательный аргумент
var_dump ()
- Выводит человеко-читаемое представление одного или нескольких значений, разделенных запятыми
- Принимает не только строки, но и другие типы, включая массивы и объекты, форматируя их для чтения
- Использует другой формат вывода для print_r() , например, он также печатает тип значений
- Полезно при отладке
- Нет возвращаемого значения
var_export ()
- Выводит человеко-читаемое и исполняемое PHP- представление любого значения
- Принимает не только строки, но и другие типы, включая массивы и объекты, форматируя их для чтения
- Использует другой формат вывода для print_r() и var_dump() – итоговый вывод действителен PHP-код!
- Полезно при отладке
- Может возвращать свой вывод в качестве возвращаемого значения (вместо эха), если задан второй необязательный аргумент
- Несмотря на то, что print может использоваться в выражении, я рекомендую людям избегать этого, потому что это плохо для чтения кода (и потому, что это вряд ли когда-либо будет полезно). Правила приоритета, когда они взаимодействуют с другими операторами, также могут вводить в заблуждение. Из-за этого у меня лично нет причин использовать его над echo .
- В то время как echo и print являются языковыми конструкциями, print_r() и var_dump() / var_export() являются регулярными функциями. Вам не нужны скобки для включения аргументов для echo или print (и если вы их используете, они будут обрабатываться так, как в выражении).
- Хотя var_export() возвращает допустимый PHP-код, позволяющий считывать значения позже, полагаясь на это для производственного кода, можно упростить внедрение уязвимостей безопасности из-за необходимости использовать eval() . Было бы лучше использовать формат JSON вместо хранения и считывания значений. Скорость будет сопоставимой.
Чтобы добавить к ответу Джона , echo должно быть единственным, которое вы используете для печати контента на странице.
print немного медленнее. var_dump() и print_r() следует использовать только для отладки.
Также стоит упомянуть, что print_r() и var_dump() будут эхо по умолчанию, добавьте второй аргумент print_r() по крайней мере, для вычисления true, чтобы вместо этого вернуть его, например print_r($array, TRUE) .
Разница между эхом и возвратом:
- echo: немедленно выведет значение на выход.
- return: Возвращает вывод функции в виде строки. Полезно для ведения журнала и т. Д.
Не имея типа возврата
Выходы в формате отформатированы,
Эхо :
Это оператор не функция Нет возвращаемого значения
Не требуется круглые скобки
Не печатать массив
Распечатать
Это действительная функция
Не печатать массив
print_r
Печать в формате для чтения
Строка не в цитатах
Не детализированная информация о переменной типа типа и всего
var_dump
Вся информация о дампе переменной типа типа и подэлемента
echo: echo – это языковая конструкция, в которой нет необходимости использовать в ней круглые скобки и может принимать любое количество параметров и возвращать пустоту.
print: это языковая конструкция, в которой нет необходимости использовать круглые скобки, она просто принимает один параметр и возвращает
prinf: Это функция, которая принимает по крайней мере один стиль строки и формата и возвращает длину выходной строки.
** Echocan принимает несколько выражений во время печати. Функция Print_r () PHP используется для возврата массива в удобочитаемую форму. Он просто написан как
print_r() используется для печати массива в удобочитаемом формате.
они оба являются языковыми конструкциями. echo возвращает void и возвращает print 1. echo считается немного быстрее, чем печать.
print_r () может распечатать значение, но также, если передан второй флаг, и TRUE – он вернет напечатанный результат в виде строки и ничего не отправит на стандартный вывод. О var_dump. Если XDebug-отладчик установлен, выходные результаты будут отформатированы гораздо читабельнее и понятнее.
Как вывести на экран массив php со значениями всех его элементов с помощью функции print_r
При написании кода программы на языке программирования PHP часто возникает необходимость вывести на экран значения массива. Существует масса способов решения этой задачи, однако, самым простым вариантом я нахожу использование для этой цели стандартной функции php print_r . В этой статье рассмотрим именно вариант вывода на экран массива php со значениями всех его элементов с помощью этой функции print_r .
Формирование двумерного массива php
Для того, чтобы показать, как вывести на экран массив php со значениями всех его элементов на полностью рабочем примере, сперва сформируем двумерный массив $array 4×4 с такими значениями:
Заполнять массив тоже можно разными способами, но для простоты и наглядности используем два вложенных цикла for :
В общем, массив сформирован. Значения элементов — заглавные буквы латинского алфавита от A до P , а значения ключей по первому индексу — латинские прописные буквы от a до d , по второму — арабские цифры от 1 до 4 .
Вывод на экран с помощью функции echo
Если попробовать вывести теперь получившийся массив с помощью php функции echo так:
То получим ничего для нас не значащую информацию:
Которая указывает, что в данном месте вывода содержится массив, но что это за массив, так и останется для нас загадкой. Такая ситуация довольно часто встречается при разборе чужого кода. В php можно достаточно легко принять массив за переменную, так как синтаксически они в коде могут выглядеть одинаково. Поэтому, получив Array при выводе с помощью функции echo , стоит иметь ввиду, что это не простая переменная, а массив.
И тут мы наконец-то добрались до сути вопроса:
Как вывести на экран массив php со значениями всех его элементов с помощью функции print_r
Для вывода массива на экран вместо функции echo проще всего использовать функцию print_r :
В итоге получим список всех элементов массива с их индексами и значениями:
Но вот печалька: такой вывод в одну строчку сильно затрудняет восприятие того, что же содержится в массиве и о том, какую структуру (размерность) он вообще имеет. Дело в том, что функция print_r выдаёт форматированный вывод в консоль. Если смотреть его в браузере, то форматирование игнорируется браузером и он отдаёт всё в одну строчку.
Как вывести на экран отформатированный массив php со значениями всех его элементов с помощью функции print_r
Для того, чтобы и в браузере получить форматированное отображение массива, как результат его вывода функцией print_r , стоит воспользоваться тегом :
Это наконец даст нужный результат: выведет на экран браузера массив в форматированном, удобном для восприятия и понимания виде:
Заключение:
Именно так просто и без затей можно вывести массив в браузер, используя стандартные возможности php и применив базовые знания HTML.
Ну и напоследок, код работающего скрипта, иллюстрирующего всё изложенное выше:
Надеюсь, что данная информация оказалась полезной и упростила жизнь также, как и мне. 😉