Чем эхо и печать отличаются в PHP?
Возможный дубликат:
Ссылка: Сравнение печати PHP и эха
Есть ли принципиальная разница между этими двумя функциями в PHP?
5 ответов
От: http://web.archive.org/web/20090221144611/http://faqts.com/knowledge_base/view.phtml/aid/1/fid/40
Скорость. Между ними есть разница, но по скорости она не должна иметь значения, какую вы используете. echo немного быстрее, так как он не устанавливает возвращаемое значение, если вы действительно хотите приступить к мелочам.
Expression.
print()
ведет себя как функция, которую вы можете сделать:$ret = print "Hello World"
; А также$ret
будет1
, Это означает, что print может использоваться как часть более сложного выражения, где echo не может. Пример из руководства по PHP:
$b ? print "true" : print "false";
print также является частью таблицы приоритетов, которая должна быть, если она будет использоваться в сложном выражении. Это примерно в нижней части списка приоритетов, хотя. Только "," И, ИЛИ и XOR ниже.
- Параметр (ы). Грамматика это:
echo expression [, expression[, expression] ... ]
Ноecho ( expression, expression )
не является действительным. Это будет действительно:echo ("howdy"),("partner")
; такой же как:echo "howdy","partner"
; (Заключение скобок в этот простой пример не имеет смысла, поскольку не существует проблемы с приоритетом операторов с одним таким термином.)
Таким образом, echo без скобок может принимать несколько параметров, которые объединяются:
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";
Они есть:
- print принимает только один параметр, в то время как echo может иметь несколько параметров.
- print возвращает значение (1), поэтому может использоваться как выражение.
- эхо немного быстрее.
Я думаю print()
медленнее, чем echo
,
Я люблю использовать print()
только для таких ситуаций, как:
echo 'Doing some stuff... ';
foo() and print("ok.\n") or print("error: " . getError() . ".\n");
Чтобы добавить к ответам выше, хотя print может принимать только один параметр, это позволит объединить несколько значений, а именно:
$count = 5;
print "This is " . $count . " values in " . $count/5 . " parameter";
Это 5 значений в 1 параметре
Как предполагает руководство по 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)