Я пользуюсь echo
и print_r
многим, и почти никогда не пользуюсь print
.
Я чувствую, echo
что это макрос, и print_r
это псевдоним var_dump
.
Но это не стандартный способ объяснить различия.
Я пользуюсь 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 $a, $b;
синтаксис, когда вы можете просто сделать echo $a . $b;
: если $ a или $ b действительно большие строки, то последняя будет использовать дополнительную память и время, создавая отдельную сцепленную версию строк в памяти перед этим. может начать вывод либо в браузер.
echo $a; echo $b;
тоже.
Просто чтобы добавить к ответу Джона , echo
должен быть единственный, который вы используете для печати контента на странице.
print
немного медленнее. var_dump()
и print_r()
должен использоваться только для отладки.
Стоит также отметить , что print_r()
и var_dump()
отзовется по умолчанию, добавить второй аргумент , по print_r()
крайней мере , которое вычисляется верно , чтобы заставить его вернуться вместо этого, например print_r($array, TRUE)
.
Разница между эхом и возвратом:
echo
ing и return
ing?
print_r
довольно часто использовал возвращаемый параметр, когда писал код PHP. Тем не менее, я, как правило, писал print_r( $foo, 1 );
. Это быстрее печатать;) И по этому поводу меня не очень заботит удобочитаемость, так как я нахожу название print_r
не слишком наглядным.
var_dump()
не поддерживает второй аргумент, позволяющий ему возвращать значение, как print_r()
делает, потому что var_dump()
может принимать несколько аргументов для вывода.
echo
Не имея тип возврата
print
Иметь тип возврата
print_r()
Выходы в формате
Разница между echo , print , print_r и var_dump очень проста.
эхо
На самом деле echo - это не функция, а языковая конструкция, которая используется для вывода на печать. Это немного быстрее, чем печать.
echo "Hello World"; // this will print Hello World
echo "Hello ","World"; // Multiple arguments - this will print Hello World
$var_1=55;
echo "$var_1"; // this will print 55
echo "var_1=".$var_1; // this will print var_1=55
echo 45+$var_1; // this will print 100
$var_2="PHP";
echo "$var_2"; // this will print PHP
$var_3=array(99,98,97) // Arrays are not possible with echo (loop or index value required)
$var_4=array("P"=>"3","J"=>"4"); // Arrays are not possible with echo (loop or index value required)
Вы также можете использовать выражение echo с круглыми скобками или без них
echo ("Hello World"); // this will print Hello World
Распечатать
Так же, как эхо- конструкция, печать также является языковой конструкцией, а не реальной функцией. Различия между echo и print в том, что print принимает только один аргумент, а print всегда возвращает 1. Принимая во внимание, что echo не имеет возвращаемого значения. Таким образом, оператор print может использоваться в выражениях.
print "Hello World"; // this will print Hello World
print "Hello ","World"; // Multiple arguments - NOT POSSIBLE with print
$var_1=55;
print "$var_1"; // this will print 55
print "var_1=".$var_1; // this will print var_1=55
print 45+$var_1; // this will print 100
$var_2="PHP";
print "$var_2"; // this will print PHP
$var_3=array(99,98,97) // Arrays are not possible with print (loop or index value required)
$var_4=array("P"=>"3","J"=>"4"); // Arrays are not possible with print (loop or index value required)
Как и эхо , печать может использоваться с круглыми скобками или без них.
print ("Hello World"); // this will print Hello World
print_r
Функция print_r () используется для печати понятной человеку информации о переменной. Если аргумент является массивом, функция print_r () печатает свои ключи и элементы (то же самое для объектов).
print_r ("Hello World"); // this will print Hello World
$var_1=55;
print_r ("$var_1"); // this will print 55
print_r ("var_1=".$var_1); // this will print var_1=55
print_r (45+$var_1); // this will print 100
$var_2="PHP";
print_r ("$var_2"); // this will print PHP
$var_3=array(99,98,97) // this will print Array ( [0] => 1 [1] => 2 [2] => 3 )
$var_4=array("P"=>"3","J"=>"4"); // this will print Array ( [P] => 3 [J] => 4 )
var_dump
Функция var_dump обычно используется для отладки и печатает информацию (тип и значение) о переменной / массиве / объекте.
var_dump($var_1); // this will print int(5444)
var_dump($var_2); // this will print string(5) "Hello"
var_dump($var_3); // this will print array(3) { [0]=> int(1) [1]=> int(2) [2]=> int(3) }
var_dump($var_4); // this will print array(2) { ["P"]=> string(1) "3" ["J"]=> string(1) "4" }
Эхо :
Это утверждение, а не функция Нет возвращаемого значения
Не требуются скобки
Не печатать массив
Распечатать
Это реальная функция
Тип возврата 1
Обязательные скобки
Не печатать массив
print_r
Печать в удобочитаемом формате
Строка не в кавычках
Не подробная информация о переменной, как тип и все
var_dump
Вся информация о дампе переменной, такая как тип элемента и вложенного элемента
print
это не настоящая функция, это языковая конструкция, как эхо. Это также может быть использовано как утверждение. echo
это не утверждение , ни он может быть использован в одном. print
вовсе не требует скобок, ни делать либо эхо или печать использовать круглые скобки , как будет функционировать. Вы также пропустили одно из основных отличий - echo принимает несколько строк, которые разделяются запятыми.
** Echocan принимать несколько выражений, а печать - нет. PHP-функция Print_r () используется для возврата массива в удобочитаемой форме. Это просто написано как
![Print_r ($your_array)][1]
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
print_r()
используется для печати массива в удобочитаемом формате.
print_r () может распечатать значение, но также, если второй параметр флага передан и равен TRUE - он вернет напечатанный результат в виде строки и ничего не отправит на стандартный вывод. О var_dump. Если установлен отладчик XDebug, выходные результаты будут отформатированы гораздо более читабельным и понятным способом.