в чем разница между print и echo
Блог Козлова Сергея
Верстка и WordPress
PHP: Отличия Echo и Print
Во время изучения PHP мы частом видим в примерах 2 способа вывода данных. Это языковые конструкции echo и print.
Да, это не функции, а именно языковые конструкции, как и написано в руководстве.
У меня, думаю как и у всех новичков в php, возникает вопрос: В чем же отличия между echo и print.
Количество строк для вывода
Обратимся к руководству по php:
echo — Выводит одну или более строк.
print — Выводит строку.
То есть если нам требуется вывести несколько строк или параметров, то проще это сделать с помощью echo. Если же надо вывести несколько аргументов с помощью print, то стоит использовать конкатенацию.
Пример для наглядности:
Возвращаемые значения
Если же заменить print на echo, то данная конструкция работать не будет, т.к. echo не является функцией.
Скорость загрузки
На картинке видно, что echo обрабатывается быстрее, чем print.
Разница обсуловлена тем, что функция print возвращает значение, о чем написано в пункте 2.
Были использованы 5 методов.
Испытания для каждого метода проводились по 20 раз, средние результаты вполне совпадают с ожидаемыми:
Строгой принципиальности нету. Но, как не крути, наиболее распространена конструкция Echo.
Print допустим в некоторых случаях, актуальность которого указан в пункте 2.
Если же вы, как и я, только начинаете учить php и решаете какую конструкцию использовать, то мой совет — использовать echo.
В чем разница между echo, print и print_r в PHP?
Но это не стандартный способ объяснить различия.
var_dump выводит подробный дамп переменной, включая ее тип и тип любых подэлементов (если это массив или объект). print_r печатает переменную в более понятной для человека форме: строки не цитируются, информация о типе опущена, размеры массива не указаны и т. д.
var_dump обычно более полезен, чем print_r при отладке, по моему опыту. Это особенно полезно, когда вы точно не знаете, какие значения / типы у вас есть в переменных. Рассмотрим эту тестовую программу:
Нет возвращаемого значения
например, echo «String 1», «String 2»
Распечатать
например, print «Hello»
или, if ($expr && print «foo»)
print_r ()
var_dump ()
var_export ()
print немного медленнее. var_dump() и print_r() следует использовать только для отладки.
Разница между эхом и возвратом:
Не имея типа возврата
Выходы в формате отформатированы,
Это оператор не функция Нет возвращаемого значения
Не требуется круглые скобки
Не печатать массив
Распечатать
Это действительная функция
Не печатать массив
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-отладчик установлен, выходные результаты будут отформатированы гораздо читабельнее и понятнее.
В чем разница между echo, print и print_r в PHP?
echo: echo не является функцией, скорее это описывается как языковая конструкция. Он принимает список аргументов (может быть передано несколько аргументов) и не возвращает значения или возвращает void. Его нельзя использовать как функцию переменной в PHP. Он используется для отображения вывода параметров, которые передаются ему. Выводит на экран одну или несколько строк, разделенных запятыми.
Пример:
// PHP-программа для иллюстрации эха
// Объявляем переменную и инициализируем ее.
$y = «Computer science portal» ;
печать: это не настоящая функция. это языковая конструкция, но она всегда возвращает значение 1. Таким образом, ее можно использовать как выражение. В отличие от echo, print принимает только один аргумент за раз. Его нельзя использовать как функцию переменной в PHP. Печать выводит только строки. Это медленный по сравнению с эхо.
Пример:
// PHP-программа для иллюстрации эха
// Объявляем переменную и инициализируем ее.
print_r (): print_r () — обычная функция. Он выводит подробную информацию о параметре в формате с его типом (массива или объекта), который может быть легко понятен людям. В этой функции выходные данные сохраняются во внутреннем буфере при передаче возвращаемого параметра. Если передать возвращаемый параметр в TRUE, print_r () вернет полную информацию, а не просто напечатает ее. Во время обхода эта функция помогает идентифицировать любые глюки при выполнении программы. Это больше похоже на функцию var_dump ().
Пример:
// PHP-программа для иллюстрации эха
PHP разница между print и echo
Я считаю, что необязательно знать разницу между ними, но все же мне было интересно разобраться, потому как умение досконально разобраться в вопросе — полезное умение 🙂
Самое логичное объяснение (не вдаваясь в подробности) разницы состоит в том, что print это функция, а echo — конструкция языка. Ведь все совпадает?
Я так и думал. Решил пойти не самым стандартным путем, но все же.
Я скачал сорцы php, нашел там тест функции print (хотел найти сорцы функции, которые как я сейчас понимаю дали бы мне не много), но к своему удивлению в заголовке теста нашел:
Потом я полез куда надо, а именно в мануалы php.
print — Output a string
Return Values
Returns 1, always.
echo Output one or more strings
Return Values
No value is returned.
Вот они и очевидные различия:
1 Print, в отличие от echo зачем то всегда возвращает 1
2 В echo, в отличие от print можно передавать больше 1 строки
К сожалеию, в силу своего малого опыта я не понимаю этих особенностей и областей их применения, но надеюсь когда-нибудь это станет понятно.
Единственное, что приходит в голову сразу же, это наверное то, что:
будет работать быстрее, чем
Потому что, если я опять же все правильно понял, в первом случае строчки выведутся, а во втором сначала сложатся, а потом выведется результирующая строка. Но нет, так нет, тогда я ничего не понял 🙂
Random Posts
К сожалению в php 5 нет встроенной функции для получения sha256 хэша, в отличие от md5. А использовать md5 в […]
В современном поколении браузеров(я это заметил где то с 3 firefox еще) появилась очень удобная функция, при помощи которой мы […]
Есть ситуации в которых нужны абсолютные пути к изображениям и файлам, ссылки на которые вставляются через TinyMCE. Для того, чтобы […]
Предупреждение: данная статья может изобиловать неправильными фактами и может вообще Вам не помочь. Но хотя бы что-то. DHTML — в […]
2 thoughts on “ PHP разница между print и echo ”
я внимательно прочитала ваши выводы и тоже порылась в мануалах. Вы скромничаете! Все на мой взгляд так и остоит. Принт древняя и мало интересная функция, и если ее часто использовать то прирост затрат рисурсной части есть. Я на своем VPN сервере просто тестила…
vinogradinka, на каком VPN севере? 😀
Или я чего не понял?
В чем разница между PHP echo и PHP return на простом английском языке?
Да, я погуглил этот вопрос и даже сослался на свой учебник (PHP Дона Госселина), но я серьезно не могу понять объяснение.
echo = показывает конечный результат функции
return = возвращает значение из функции
оба отображают результат! Чего я не понимаю?
13 ответов
Я собираюсь дать совершенно нетехнический ответ на этот вопрос.
предположим, что есть девушка по имени Салли функция. Ты хочешь знать, нравишься ты ей или нет. Поэтому, поскольку вы в начальной школе, вы решаете передать Салли записку (вызовите функцию с параметрами), спрашивая ее, нравитесь ли вы ей или нет. Теперь ты планируешь спросить ее об этом, а потом рассказать всем, что она скажет тебе. Вместо этого, вы спрашиваете ее, а потом Она рассказывает всем. Это эквивалентно возвращению (вы получаете информацию и делаете что-то с ней) против ее Эха (рассказывая всем без какого-либо контроля).
в вашем случае происходит то, что когда Салли echo Она берет у вас контроль и говорит:» Я собираюсь рассказать людям об этом прямо сейчас», вместо того, чтобы вы могли принять ее ответ и сделать то, что вы хотели с ним сделать. Конечный результат, однако, в том, что вы говорили людям в то же время, так как вы эхом то, что она уже повторила, но не вернула (она прервала вас на середине вы говоря вашему классу, нравитесь вы ей или нет)
вы можете ожидать, что выход будет:
Я вижу, что вы публикуете комментарии, которые предполагают, что вы смущены, потому что вы не понимаете поток кода. Возможно, это поможет вам (особенно с ответ Матиаса Р. Ессена).