Чтобы добавить к ответ Джона , echo
должен быть единственным, который вы используете для печати содержимого на странице.
print
немного медленнее. var_dump()
и print_r()
следует использовать только для отладки.
Также стоит упомянуть, что print_r()
и var_dump()
будут эхо по умолчанию, добавьте второй аргумент в print_r()
, по крайней мере, который оценивает к true, чтобы заставить его вернуться, например, print_r($array, TRUE)
.
Разница между эхом и возвратом:
print_r()
используется для печати массива в удобочитаемом формате.
** Echocan принимает несколько выражений во время печати. Функция Print_r () PHP используется для возврата массива в удобочитаемую форму. Он просто написан как
![Print_r ($your_array)][1]
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
Не имеет типа возврата
print
Имейте тип возврата
print_r()
Выводит в формате format,
print_r () может распечатать значение, но также, если передан второй флаг, и TRUE - он вернет напечатанный результат в виде строки и ничего не отправит на стандартный вывод. О var_dump. Если XDebug-отладчик установлен, выходные результаты будут отформатированы гораздо читабельнее и понятнее.
echo: echo - это языковая конструкция, в которой нет необходимости использовать с ней круглые скобки и может принимать любое количество параметров и возвращать void.
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
они оба являются языковыми конструкциями. echo возвращает void и возвращает print 1. echo считается немного быстрее, чем печать.
echo
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:
Это оператор не функция Нет возвращаемого значения
Не требуется скобки
Не печатать массив
Печать
Реальная функция
Тип возврата 1
Требуется скобки
Не печатать массив
Print_r
Печать в удобочитаемом формате
Строка не в кавычках
Не детализированная информация о переменной типа типа и всех
var_dump
Вся информация о дампе переменной типа типа и подэлемента