Я использую 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
при отладке, по моему опыту. Это особенно полезно, когда вы точно не знаете, какие значения / типы у вас есть в переменных. Рассмотрим эту тестовую программу:
$values = array(0, 0.0, false, ''); var_dump($values); print_r ($values);
С print_r
вы не можете определить разницу между 0
и 0.0
, или false
и ''
:
array(4) { [0]=> int(0) [1]=> float(0) [2]=> bool(false) [3]=> string(0) "" } Array ( [0] => 0 [1] => 0 [2] => [3] => )
эхо
Нет возвращаемого значения
например, echo "String 1", "String 2"
Распечатать
Возвращает 1
, поэтому его можно использовать в выражении
например, print "Hello"
или, if ($expr && print "foo")
print_r ()
var_dump ()
print_r()
, например, он также печатает тип значений var_export ()
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
Не имея типа возврата
print
Обратный тип
print_r()
Выходы в формате отформатированы,
Эхо :
Это оператор не функция Нет возвращаемого значения
Не требуется круглые скобки
Не печатать массив
Распечатать
Это действительная функция
Тип возврата 1
Требуется скобки
Не печатать массив
print_r
Печать в формате для чтения
Строка не в цитатах
Не детализированная информация о переменной типа типа и всего
var_dump
Вся информация о дампе переменной типа типа и подэлемента
echo: echo – это языковая конструкция, в которой нет необходимости использовать в ней круглые скобки и может принимать любое количество параметров и возвращать пустоту.
void echo (param1,param2,param3.....); Example: echo "test1","test2,test3";
print: это языковая конструкция, в которой нет необходимости использовать круглые скобки, она просто принимает один параметр и возвращает
1 always. int print(param1); print "test1"; print "test1","test2"; // It will give syntax error
prinf: Это функция, которая принимает по крайней мере один стиль строки и формата и возвращает длину выходной строки.
int printf($string,$s); $s= "Shailesh"; $i= printf("Hello %s how are you?",$s); echo $i; Output : Hello Shailesh how are you? 27 echo returns void so its execution is faster than print and printf
** Echocan принимает несколько выражений во время печати. Функция Print_r () PHP используется для возврата массива в удобочитаемую форму. Он просто написан как
![Print_r ($your_array)][1]
print_r()
используется для печати массива в удобочитаемом формате.
они оба являются языковыми конструкциями. echo возвращает void и возвращает print 1. echo считается немного быстрее, чем печать.
print_r () может распечатать значение, но также, если передан второй флаг, и TRUE – он вернет напечатанный результат в виде строки и ничего не отправит на стандартный вывод. О var_dump. Если XDebug-отладчик установлен, выходные результаты будут отформатированы гораздо читабельнее и понятнее.