Гибкость: я считаю, что печать определенно более гибкая, чемэхо в выражении кода.Эхо имеет только одно «преимущество» перед печатью: вы можете использовать следующий синтаксис: echo $arg1, $arg2, ...
использование запятых для перечисления аргументов;print не поддерживает синтаксис запятой.Однако вы можете заменить запятые точками (.) И получить точно такой же результат как в echo, так и в print: print $arg1. $arg2. ...
.Таким образом, этот синтаксис обеспечивает нулевое преимущество в гибкости и выражении.Это небольшое преимущество, потому что это приводит к более быстрому коду, как я упоминал в # 1, но в 99% кода это, вероятно, не имеет значения.
Напротив, единственное, что может сделать печать, чего не может сделать эхо, - это вернуть значение и, таким образом, оно может полностью функционировать как функция.С одной стороны, оно ограничено, потому что print всегда возвращает значение 1, несмотря ни на что.С другой стороны, вы можете сделать это с помощью print, но не с помощью echo:
<?php ($age >= 18) ? print('Can vote.') : print('Cannot vote.'); ?>
(пример взят из PHP и MySQL 2010 Murach, стр. 227)
Таким образом, печать может выражать практически всю ту же гибкость в коде, что и эхо, но у эха есть один важный случай использования, когда он не может сделать то, что может сделать печать: печать может действовать как функция в тех случаях, когда это может быть полезно.(Я говорю «действуй как функция», потому что это не функция; это языковая конструкция, как и эхо.)
Что касается сокращенного синтаксиса эха <?=$foo?>
(<?php=$foo?>
также работает сPHP 5.4: http://us2.php.net/manual/en/function.echo.php), это можно назвать сокращением для "echo", но вы также можете назвать это сокращением для "print", потому что это просто другая языковая конструкция. Нет логической основы для вызова этого«преимущество» эха над печатью, как утверждают некоторые, поскольку эта конструкция не является ни эхом, ни печатью - это альтернативная конструкция, которая делает то же самое, что и оба.