С Новым годом! Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.91/11: Рейтинг темы: голосов - 11, средняя оценка - 4.91
 Аватар для Rodion2703
24 / 20 / 5
Регистрация: 06.01.2013
Сообщений: 819

Что лучше, print или echo?

03.08.2013, 16:03. Показов 2275. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Что лучше, print или echo?
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
03.08.2013, 16:03
Ответы с готовыми решениями:

Вывод ошибки без echo или print
<?php class Engine { private $_page_file = null; private $_error = null; public function __construct() { ...

Echo и print
Уважаемые форумчане, если кто может объясните пожалуйста какие правила применяются при вычислении, т.е. почему результат именно такой: ...

Print/echo в for
Привет всем. На курсах дали задание с помощью for вывести на экран числа от 0 до 9 не используя тело цикла. Попробовал решить...

9
601 / 468 / 73
Регистрация: 22.01.2009
Сообщений: 1,180
Записей в блоге: 1
03.08.2013, 16:05
что лучше, require или include ?

Добавлено через 38 секунд
с какой точки зрения?
0
 Аватар для Rodion2703
24 / 20 / 5
Регистрация: 06.01.2013
Сообщений: 819
03.08.2013, 16:06  [ТС]
А можете объяснить, где лучше echo, а где print, и где include, а где require?
0
601 / 468 / 73
Регистрация: 22.01.2009
Сообщений: 1,180
Записей в блоге: 1
03.08.2013, 16:11
если с производительности, то echo быстрее.

Добавлено через 51 секунду
require выбрасывает fatal error, а include -- warning, если файл не найден. вот и все их отличие

Добавлено через 2 минуты
а print -- функция. просто можно где-то написать что-то вроде
PHP
1
print print 'aaa';
хотя это выведет на первый взгляд нелогичную хрень ("aaa1"), но все же так сделать можно (правда я не имею понятия, где такое надо, честно). а echo, как конструкция, такого сделать не позволяет
1
 Аватар для Rodion2703
24 / 20 / 5
Регистрация: 06.01.2013
Сообщений: 819
03.08.2013, 16:13  [ТС]
Мне кажется нафиг разработчикам надо было делать require и include, аналогично с print, echo?
0
 Аватар для Vovan-VE
13210 / 6599 / 1041
Регистрация: 10.01.2008
Сообщений: 15,069
03.08.2013, 16:16
Отличие echo и print

Добавлено через 2 минуты
Цитата Сообщение от Rodion2703 Посмотреть сообщение
Мне кажется нафиг разработчикам надо было делать require и include, аналогично с print, echo?
Нафиг было изобретать шурупы, когда уже существовали гвозди? Разные вещи с разным назначением и результатом.
1
 Аватар для Rodion2703
24 / 20 / 5
Регистрация: 06.01.2013
Сообщений: 819
03.08.2013, 16:34  [ТС]
Vovan-VE, Я ему говорил, что ведь есть причина print, если они ее сделали. Они ведь не тупые

На счет print и echo - лучше используйте echo.
0
03.08.2013, 16:46

Не по теме:

Цитата Сообщение от Rodion2703 Посмотреть сообщение
Они ведь не тупые
так и хочется сказать "обоснуйте". А вообще, Расмус Лердорф придумал этот язык за два дня "на коленке". Почитайте статью "PHP: Фрактал плохого дизайна", там освещается этот вопрос. Почитайте историю создания языка. Потом можете глянуть в их чейнжлоги, как они относятся к некоторым полезным фичам, которые им предлагают сделать пользователи (да хоть на том же хабре, где вы найдете перевод вышеупомянутой статьи). Вместо этого они увеличивают производительность оператора "@", и (сколько там уже) пытаются встроить в язык юникод. чтобы можно было написать вот так вот:
PHP
1
2
$a = 'Моя переменная';
$$a = '...'
скажите, это тоже очень полезно, на ваш взгляд? По-моему это не стоит тех трудозатрат, которые они пытались сделать. Лучше бы просто mbstring включили в ядро, взамен стандартных strlen, substr и пр... Но ладно.

1
03.08.2013, 16:51

Не по теме:

NEbO, по делу сказано!

0
601 / 468 / 73
Регистрация: 22.01.2009
Сообщений: 1,180
Записей в блоге: 1
03.08.2013, 19:11
Лучший ответ Сообщение было отмечено как решение

Решение

извиняюсь, сразу как-то проскочил этот момент...
Цитата Сообщение от Rodion2703 Посмотреть сообщение
нафиг разработчикам надо было делать require и include
вот тут как раз есть логика. Точнее, семантика. Суть в том, что в некоторых случаях вам, скажем так, не обязательно нужен подключаемый файл. Например, есть кеш, который у вас находится в php-файле, но в то же время, если он не подключится, это не фатально: вы всегда его сможете сгенерировать потом. Поэтому такие файлы логичнее подключать через include(_once).
А вот когда вам нужна библиотека, без которой вы вообще не сможете продолжить работу -- тогда require. Как-то так.
Разумеется, и в том и в другом случае, вам нужно выставить обработчики ошибок, если вы захотите сделать подобное поведение

Не по теме:

ну вообще, очень много E_WARNING-ов лучше всего перехватывать: тот же file_get_contents для несуществующего файла выдаст его, хотя можно проверять результат на ===false, и иметь тот же результат

.
Также можно "через всем известное место" сэмулировать поведение require через include, и в некоторых случаях, наоборот. Также как и с помощью css можно сэмулировать тег <b> через тег <i>. Но смысла в этом как правило, маловато.
Вообщем, семантика. И есть смысл в программе использовать иногда одно, иногда другое, за это вам не дадут по голове клавиатурой.
А вот в смешивании echo и print я смысла особенно не вижу. Единственное что, действительно, print пришло там из си, в питоне то же самое, ну просто имхо можно его воспринимать как что-то вроде архаизма. Может, кому-то оно сделает жизнь удобнее и счастливее. Ну вообщем-то есть и есть -- почему бы и нет? Другое дело, что я никогда не сталкивался с тем, чтобы echo было менее удобно, и на мой взгляд этот оператор предпочтительнее. Кроме того, у вас появляется дополнительный уровень приоритета (запятая) без использования скобок. Возможно, не так уж и часто, но порой это может быть полезно.
print, вероятно, возник из-за каких-то функциональных корней, которые кто-то когда-то пытался реализовать. Вообще, любая функция же возвращает результат. Даже если вы явно не указываете return, результатом функции будет null. К сожалению, разработчики только забыли добавить нормальные лямбда-функции, которые являются основой функционального программирования, а так, в целом, очень неплохо.

Не по теме:

о, да. в 5.3 добавили лямбды. Ура. Я захотел проверить, действительно ли они работают как полагается. Посмотрите:

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
$k = function ($x) {
    return function ($y) use ($x) {
        return $x;
    };
};
 
$s = function ($x) {
    return function ($y) use($x) {
        return function ($z) use ($x, $y) {
            $f = $x($z);
            return $f($y($z));
        };
    };
};
 
$tmp = $s($k);
$i = $tmp($k);
 
echo $i(3);
да, выведет, что положено. 3. Но вопрос: зачем я вводил переменную $tmp? Почему нельзя было просто написать
PHP
1
$i = ($s($k))($k);
Мне мой php5.4 выдал parse error. Я не могу это объяснить какой-то логикой, но и ежу ясно, что дело в грамматике. Примерно такая же ситуация, почему нельзя раньше было писать
PHP
1
someFunc()[0]
, даже если someFunc() гарантированно вернет массив. Да, в версии, кажется 5.4, исправили эту ошибку. Но с лямбда-функциями нет... Отсюда имхо можно сделать только один вывод: грамматика не продумана должным образом. Каждое такое изменение потребует соответсвующего костыля. Но, увы, чтобы таких странностей больше не было вообще, придется перерабатывать всю грамматику. Остается опять же вопросом то, почему они это не сделали. (ответом, я так понимаю, будет то, что производительность оператора "@" в сто раз важнее)


Вообщем, такие дела. Поэтому я и никому не рекомендую изучать php как свой первый язык.

Не по теме:

Знаю, многие сторонники возмутятся, мол, не нравится -- не используй. Но во-первых, все таки я не считаю пхп уж совсем-совсем безнадежным. Он прекрасно работает со строками. Даже на плюсах вам придется помучаться еще с оптимизацией строковых функций так, чтобы они работали хотябы с такой же скоростью. Поэтому я уверен в том, что для несложных проектов php годится более чем.
Однако, с другой стороны, я с радостью бы и ушел с него, и забыл бы как страшный сон, да вот беда: хостинг-компании подхватили эту иницативу "простого в использовании языка", и фактически, это единственная более-менее рабочая платформа, которая подлежит хорошему деплойменту. То есть что делать с заказчиком, который хочет открыть сайт, но не хочет нанимать сисадмина для настройки сервера, постоянно сыпать вопросы в тех поддержку а ля "почему у меня БД отвалилась", да и в конце концов, с посещаемостью максимум 500-1000 уников в сутки, чего обычно достаточно для вполне серьезного оффлайн бизнеса, платить 500 руб в мес -- жирновато, не так ли?
Да, конечно, особенно в последнее время наметилась тенденция встраивать и другие языки как часть платформы. Perl? он работает как cgi-модуль. Чуть побольше зайдет народу, или кто-то решит посканить ваш сайт -- считайте, пиши пропало. Pyhton? Тоже, мало кто на шареде задумывается о тонкой его настройке. Лично я даже побаиваюсь брать или советовать кому-то даже "чуть-чуть" переплатить за хостинг, чтобы проверить, а все ли там будет в порядке.
В конце концов, часть заказчиков имеет замечательную привычку обращаться к программистам уже после того, как куплен домен, "выбран" хостинг, иногда даже по каким-то там партнерским программам. И я не могу сказать, что они дебилы. Постоянные расходы можно и нужно убирать, даже если вы там сэкономите 30-40 руб в мес, это могут быть серьезные деньги, если вы не рассчитываете, что с вашего сайта к вам будет приходить 80% покупателей. Это просто площадка для дополнительной рекламы. В то же время, сайт должен выглядеть культурно, аккуратно, работать достаточно быстро, и так далее.
Вообщем, что я хочу сказать: зачастую у программистов вроде меня просто нет выбора. Я не так уж редко указываю на недостатки php, чтобы люди знали, что он представляет из себя на самом деле. Да, зная все эти тонкие моменты, опытные программисты обходят (я вот пока еще не все научился обходить, и иногда попадаюсь) и так далее. Работа со строками -- это конечно рай, но не главное, для сложного сервиса. А вот много ли разработчиков знают про 304ый код? Много ли умеют REST? Все ли знают, что такое HTTP-протокол вообще? Keep-alive, persistent connection, pipelining, spdy... Да, бывают, но нечасто. Это ведь все проще пареной репы, куда проще чем понять, зачем в пхп запихали magic_quotes и удалили их через пару версий. Проще чем понять, зачем был register_globals, из-за которого до сих пор в приложениях находят уязвимости. PHP заставляет изучать все эти кривые и полурабочие технологии, которые сами по себе время от времени могут сглючить, вместо изучения действительно полезного и интересного материала.
Кстати, я проходил тест на odesk. В пхп я набрал 62%, кажется, а в си -- 92, и попал в первую двадцатку, если не ошибаюсь, с таким результатом. И это с учетом того, что на си я толком никогда и не писал. Си логичен, продуман, прост. Может не так математически продуман, как хаскель, но тем не менее, он достаточно логичен, чтобы его можно было "учить". А вот php "учить" смысла не вижу, хоть убейте. Это все равно что учить русский язык, только для того, чтобы запрограммировать программу. Исключений столько же, сколько и правил, если не больше. Поэтому, хочу обратиться ко всем новичкам, а также к тем, кто почитает php как божество за его простоту (надеюсь, про элегантность даже вы со мной согласитесь, что лучше умолчать): а стоит ли оно того?
Есть хороший список действительно полезных знаний для программиста: http://codeforces.ru/blog/entry/1594 . Поучите лучше что-то из этого списка, это реально полезно. Не тратьте время зря, его слишком мало, чтобы вот так вот разбрасываться им, читая всяких Поповых (и кого там еще), они вам не подскажут базовых принципов. А зная даже 5-10% из этого списка, вы сразу почувствуете знания. Настоящие. И будете удовлетворены результатом!
Не хотите читать, не интересно, и так далее -- займитесь семьей, готовкой, значит это просто не ваше. Только в случае, когда вы хотите зарабатывать себе лишь на хлеб и воду, со своими "великолепными знаниями" пхп, можете обратиться к вашим Поповым. Я не против. Просто знайте, на что вы идете, и знайте, что потеряете уйму времени просто на ровном месте. Скорее всего, вы в действительности не будете знать совершенно ничего. Но на хлеб и воду вам, скорее всего, хватит.
Начав программировать с тех же сей, ассемблера, паскаля, вы научитесь тому, чего не знал ни один Попов, когда записывал свои "уроки". Да, это сложнее. Да, часть из этого вы не будете применять на практике. Но у вас всегда будет удовлетворение: "а я знаю, как оно работает. Я знаю, как сделать так же, знаю, как улучшить этот алгоритм, и хоть понимаю, что мне понадобится слишком много времени, чтобы сделать это, но мне это по зубам!". И, на самом деле, порой оказывается, что применить свои знания можно даже программируя на пхп. Запомнить его логику, его конструкции, егошный кривой синтаксис, и почему он такой -- порой ответ на это можно узнать, заглянув в исходники, и понять, проследить логику автора (хотя, я не совсем уверен, что он не психопат:)), тогда вы от частного перейдете к общему, и запомните, что в таких случаях так делать можно, а так нельзя.
Впрочем, дело ваше. Пожалуй, не мне вас учить, у меня всего-то 5 лет пед стажа. Учитесь сами тому, что вам интересно. Только не делайте поспешных выводов. Таких, как например, "пхп крут, потому что он прост". Или "пхп крут, потому что на нем много пишут". Изучая более глобальные вещи, вы поймете границы применимости этих тезисов, и вот это куда круче. Всем спасибо за внимание и удачи:)

5
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
03.08.2013, 19:11
Помогаю со студенческими работами здесь

print и echo?
print и echo в чем разница и есть ли она?

Echo vs print
Читаю Зандстра: Объекты, шаблоны и методики программирования. И вот в самом почти начале, где вправляется мозг в отношении классов и...

Отличие echo и print
Отличие echo и print

Echo, print, exit, die
Здравствуйте! Встречаю частенько такие связки: echo 'Текст'; die(); print('Текст'); die();

Вывести символы, используя только три ECHO. Echo '0', Echo '*', Echo '\n' (использовать цикл)
Вывести символы, используя только три ECHO. Echo '0', Echo '*', Echo '\n' (использовать цикл). Рисунок который нужно вывести: ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru