PHP: Отличия Echo и Print

0 No tags Permalink 50

Во время изучения PHP мы частом видим в примерах 2 способа вывода данных. Это языковые конструкции echo и print.

Да, это не функции, а именно языковые конструкции, как и написано в руководстве.
У меня, думаю как и у всех новичков в php, возникает вопрос: В чем же отличия между echo и print.

Количество строк для вывода

Обратимся к руководству по php:
echo — Выводит одну или более строк.
print — Выводит строку.
То есть если нам требуется вывести несколько строк или параметров, то проще это сделать с помощью echo. Если же надо вывести несколько аргументов с помощью print, то стоит использовать конкатенацию.
Пример для наглядности:

1
2
3
4
5
6
<?php
echo 'Эта ', 'строка ', 'была ', 'создана ', 'несколькими параметрами.';
echo 'Эта ' . 'строка ' . 'была ' . 'создана ' . 'с помощью конкатенации.';
// в print получится только так:
print 'Эта ' . 'строка ' . 'была ' . 'создана ' . 'с помощью конкатенации.';
?>

Возвращаемые значения

Обратимся к руководству по php:
echo — Эта конструкция не возвращает значения после выполнения.
print — Возвращает 1, всегда.
То есть конструкция print( ) возвращает статус состояния произведенной операции, в конструкция echo просто выводит текст и не более того.
Применяться print( ) может в условных конструкциях с тернарным оператором:

1
2
3
4
<?php
$var = 2;
( $var > 1 ) ? print 'yes' : print 'no';
?>

Если же заменить print на echo, то данная конструкция работать не будет, т.к. echo не является функцией.

Скорость загрузки

  • Ниже показано сравнение скорости загрузки с сайта phpbench.com.

Отличия Echo и Print
На картинке видно, что echo обрабатывается быстрее, чем print.
Разница обсуловлена тем, что функция print возвращает значение, о чем написано в пункте 2.

  • Также на хабре besisland провел испытание, в которых выводил 1000 раз по 1000 строк длиной по 32 каждую.

Были использованы 5 методов.

Испытания для каждого метода проводились по 20 раз, средние результаты вполне совпадают с ожидаемыми:

1
2
3
4
5
print "$value<br />";		// 1,727 с
echo "$value<br />";		// 1,727 с
print $value . '<br />';	// 1,462 с
echo $value . '<br />';		// 1,428 с
echo $value, '<br />';		// 1,321 с

Какую конструкцию использовать ?

Строгой принципиальности нету. Но, как не крути, наиболее распространена конструкция Echo.
Print допустим в некоторых случаях, актуальность которого указан в пункте 2.
Если же вы, как и я, только начинаете учить php и решаете какую конструкцию использовать, то мой совет — использовать echo.

 

Comments are closed.