От: http://web.archive.org/web/20090221144611/http://faqts.com/knowledge_base/view.phtml/aid/1/fid/40
Скорость. Существует различие между этими двумя, но мудрый скоростью это должно быть не важно, какой Вы используете. эхо незначительно быстрее, так как оно не устанавливает возвращаемое значение, если Вы действительно хотите перейти к вшивому песчаному.
Выражение. print()
ведет себя как функция, в которой можно сделать: $ret = print "Hello World"
; И $ret
будет 1
. Это означает, что печать может использоваться в качестве части более сложного выражения, где эхо не может. Пример из Руководства PHP:
$b ? print "true" : print "false";
печать является также частью таблицы приоритета, которой это должно быть, если это должно использоваться в сложном выражении. Это примерно в нижней части списка приоритета все же. Только"", И, ИЛИ и XOR ниже.
echo expression [, expression[,
expression] ... ]
, Но echo ( expression, expression )
не допустимо. Это было бы допустимо: echo ("howdy"),("partner")
; то же как: echo
"howdy","partner"
; (Помещение скобок, в которых простой пример не служит никакой цели с тех пор, нет никакой проблемы приоритета оператора с единственным термином как этот.) Так, эхо без круглых скобок может взять несколько параметров, которые связываются:
echo "and a ", 1, 2, 3; // comma-separated without parentheses
echo ("and a 123"); // just one parameter with parentheses
print()
может только взять один параметр:
print ("and a 123");
print "and a 123";
Они:
Для добавления к ответам выше, в то время как печать может только взять один параметр, она будет допускать конкатенацию нескольких значений, т.е.:
$count = 5;
print "This is " . $count . " values in " . $count/5 . " parameter";
Это - 5 значений в 1 параметре
Я думаю print()
, медленнее, чем echo
.
мне нравится использовать print()
только для ситуаций как:
echo 'Doing some stuff... ';
foo() and print("ok.\n") or print("error: " . getError() . ".\n");
Как руководство PHP.net предполагает, возьмите чтение это обсуждение .
Одно существенное различие - то, что echo
может взять несколько параметров для вывода. Например:
echo 'foo', 'bar'; // Concatenates the 2 strings
print('foo', 'bar'); // Fatal error
, Если Вы надеетесь оценивать результат оператора вывода (как ниже) использование print
. В противном случае используйте echo
.
$res = print('test');
var_dump($res); //bool(true)