|
|
|
|
|
для: Косорылый
(13.06.2011 в 08:25)
| | > а зачем тут кавычки....
Затем, что это строковая константа, которая должна уйти в выходной буффер. Я мог оставить её без кавычек и она всё равно преобразовалась бы в строку.
Что отправится на экран в случае этого скрипта?
То же самое что и
<?
$a = print '2';
print $a;
|
Потрудитесь почитать мануал: http://php.net/print
Если конструкция языка возвращает какое-то значение, она не перестаёт быть конструкцией языка. Тем более в мануале об этом написано явно. | |
|
|
|
|
|
|
|
для: Саня
(12.06.2011 в 21:05)
| | Противоречим себе.....
Разница в том, что print всегда возвращает 1 как результат своей работы.
|
Может не ошибся..насчет функции....
а зачем тут кавычки.... | |
|
|
|
|
|
|
|
для: Ильдар
(12.06.2011 в 16:28)
| | Разница в том, что print всегда возвращает 1 как результат своей работы. Эта единица не несёт в себе какой-либо смысловой нагрузки и выглядит, мягко говоря, абсурдно. Вероятно это связано с историческими причинами. Возможно print когда-то выдавал осмысленное значение (например количество байт, отправленных в выходной буффер) и существовал код, ориентирующийся на это. Но сейчас этого уже никто не скажет точно.
Echo тоже не без грешка. Она может принимать несколько параметров, которые отправляются в выходной буффер последовательно. Это аналогично предварительной конкатенации строк при помощи оператора ".".
Print и echo — один из примеров неоднозначности и запутанности языка, за что многие любят хаять PHP. Например:
<?
print '1' . 'abcd' . '2';
print ('1' . 'abcd' . '2');
echo '1' . 'abcd' . '2';
echo '1', 'abcd', '2';
echo ('1', 'abcd', '2');
|
По сути все эти примеры делают одно и тоже с одинаковым результатом. Недостаток такого подхода — в его неодинаковости. Было бы намного проще, если бы существовала только одна функция вывода
По поводу производительности не стоит волноваться. В соседней теме я уже сказал кое-что по этому поводу.
Cheops ошибся. И print, и echo — конструкции языка, а не функции. И поэтому обе могут применяться без круглых скобок. | |
|
|
|
|
|
|
|
для: Ильдар
(12.06.2011 в 16:28)
| | Существует и обратное утверждение. Большой вопрос к тем, кто эту скорость измеряет, а также к примерам, которые используются при тесте. echo - это конструкция языка, print - функция.
PS Вообще по логике echo должно быть чуть быстрее. Однако, реально измерить это довольно трудно - первый прогон скрипта не может засчитываться, а потом, когда PHP разогрет и получен интерпретируемый байт-код, боюсь и разницу уже нет - обе конструкции приводятся к одному и тому же представлению. | |
|
|
|
|
|
|
|
для: Ильдар
(12.06.2011 в 16:28)
| | отличие в том, что print возвращает true/false
попробуйте написать <?=print(1);?> и вам выдаст 11
первая единица будет означать true. скажете, где такие
идиоты, которые ставят = перед print? представьте себе,
есть такие! да еще называют себя программистами! | |
|
|
|
|
|
|
| Приходилось слышать что print работает чуть быстрей чем echo. Насколько правда? И вообще какое отличие? | |
|
|
|
|