Первый язык программирования. Какой выбрать? Исчезнет ли язык программирования PHP? Язык рнр

1 year ago | 98.5K

Всем привет, меня зовут Сергей Никонов, для тех кто меня не знает, расскажу немного о себе. Мой опыт в разработке веб-сайтов и веб-приложений более 10 лет и в этом видео я постараюсь ответить на один из самых часто-задаваемых вопросов - Какой язык программирования изучать первым?

Смотрите видео Первый язык программирования. Какой выбрать в 2018 году?

Сам по себе язык программирования - это просто инструмент, за счет которого достигается та или иная цель и все объектно-ориентированные языки программирования, имеют общие свойства, такие как переменные, массивы, функции, методы, классы, интерфейсы и другие свойства.

И когда вы научитесь пользоваться этими свойствами хотя бы на среднем уровне в одном языке программирования, вы очень легко сможете освоиться в любом другом языке программирования.

Но еще хочу подчеркнуть, что не пытайтесь изучить сразу все языки программирования, как некоторые студенты, немного попробовали, к примеру писать на Java, через пару дней перекинулись на Python, потом на . В итоге, с таким подходом, не освоили ни одного языка, так как информации, которую нужно изучить очень много у студентов в голове каша и при этом у них теряется мотивация вообще изучать программирование.

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

Какой же язык программирования выбрать в качестве первого?

Я рекомендую выбрать PHP, так как этот язык очень простой, имеет огромное комьюнити, а также большое количество вакансий по всему миру, если вы хотите изучить программирование, для того, чтобы сменить текущую профессию.

Кто-то может возразить, сказать что PHP медленный, на нем пишут плохой код и т.д. но одним из ярких примеров является сайт Facebook. Он написан на PHP и по посещаемости сайт Facebook находится на 2м месте в мире, среди миллионов веб-сайтов. Кстати, социальная сеть вконтакте, также написана на PHP.

А что касается плохого кода, на PHP, такое возможно, так как сам язык дает много свободы действий и если PHP неправильно изучить, ваш код будет запутанным, а сайт будет медленно работать. О том как правильно изучать PHP самостоятельно и в какой последовательности, я расскажу в одном из следующих видео.

Достаточно часто мне задают вопрос:

Прежде всего необходимо понять, что HTML - это язык разметки, а не программирования и относится к верстке html-страниц. С помощью , вы объясняете браузеру, как должна выглядеть ваша страница, какого размера и цвета должны быть блоки на сайте.

Как начать программировать на PHP?

Программировать на PHP очень просто и все что вам нужно - это

Язык PHP уверенно чувствует себя в топах самых популярных языков программирования, однако же у всего есть конец. Грозит ли PHP оказаться не у дел, что может его заменить и какой язык вы бы выбрали для создания сайта типа Facebook? На эти вопросы ответили пользователи сайта Quora .

Джордж Мауэр, преподает JS

PHP умирает, Java умирает, C# умирает, SQL умирает, JavaScript умирает, C умирает. И все равно проектов на этих языках значительно больше, чем проектов на всех неперечисленных языках программирования вместе взятых. Да, иногда новые тренды могут вытеснять что-то устоявшееся, но этот процесс происходит крайне медленно. Совсем не значит, что это самое старое - плохое.

Я не могу согласиться с тем, что PHP был лучшим вариантом для создания Facebook. Создатели этой социальной сети в действительности лишь частично используют PHP. В настоящее время можно сказать, что вместо этого языка у них есть собственный диалект под названием Hack. PHP был просто языком, на котором Цукерберг и другие разработчики начинали работать над этим проектом.

Нельзя сказать, что PHP был таким уж и плохим выбором. Все же это язык, который отвечает требованиям быстрой разработки приложений. А это в свою очередь является одним из ключевых факторов для стартапа - в случае с Facebook этот фактор сыграл решающую роль. Изначально PHP был этакой сборной коллекцией скриптов. И это позволяет легко перейти на более низкий уровень абстракции и создавать код на C тогда, когда действительно существует необходимость в оптимизации. Все это было тщательно изучено и успешно внедрено в большинство современных языков.

Пожалуйста, выкиньте из своей головы идею, что социальная сеть требует чего-то специфического от языка программирования. Создание большей части кода будет совершенно стандартным и привычным. Да, есть некоторые проблемные области наподобие сопоставления предположительных и потенциальных друзей, но похожие вопросы чаще всего решаются при помощи специализированного ПО. Например, графо-ориентированных баз данных. Вам нужно будет крайне тщательно и аккуратно строить свою систему, а также отлично разбираться в области DevOps, но то же самое придется проделывать и с другими языками. Вместо идеального языка разработки для вас скорее важны опытные и знающие разработчики.

И это, собственно, подводит меня к сути вопроса. PHP крайне привлекателен хотя бы потому, что огромное количество специалистов на данный момент хорошо его знают. Но вы вряд ли захотите, чтобы кто-либо из подобных специалистов работал над вашим стартапом. Вы захотите нанять людей, которые знают сразу несколько языков, людей, обладающих сформированным и обоснованным мировоззрением. А такие люди в своем большинстве не особо жалуют PHP.

Представьте: сижу я в новеньком офисе, снятом для разработки моего только что зарегистрированного стартапа, пялюсь на свой стол с кучей денег, полученных на развитие проекта, и ломаю голову над тем, какой же язык программирования выбрать. Я понимаю, что это проблема где-то 250-ая в списке вещей, определяющих успех или поражение моего будущего предприятия. И я начинаю осознавать, что данное решение необходимо принимать вместе с командой разработчиков, которой у меня пока нет. Поэтому сам начинаю искать варианты языка, который был бы относительно широко распространен, легко бы позволял разработчикам переходить на более низкий уровень абстракции и, что самое важное, на котором бы у меня были знакомые разработчики - лучшие в своем деле.

На данный момент таким языком является Elixir. Он базируется на виртуальной машине Beam и является достаточно близким родственником языка Erlang, который на протяжении нескольких десятилетий отлично демонстрировал себя в ряде проектов. Кроме того, данный язык показывает просто невообразимые результаты в отношении производительности.

Другим отличным выбором может стать язык Go. Главным образом это язык низкого уровня, но на нем можно делать все то же, что и на языках высокого уровня. Пусть мне и не нравятся некоторые решения касательно его структуры, но он, так или иначе, заслуживает внимания.

Еще одним вариантом может стать Clojure. Существует вероятность, что найти разработчиков на данном языке будет не так просто, но с учетом того, что этот язык - прямой потомок LISP, я могу искренне назвать его невероятно мощным и дающим множество вариантов развития.

Несколько важных замечаний:

  • присмотритесь к F# на фреймворке.Net или даже к вездесущему C#. Если вы все же выберете последний вариант, то будьте готовы к тому, что для создания отличной команды вам придется просмотреть и просеять намного большее количество резюме;
  • при помощи Scala можно творить впечатляющие вещи;
  • Node.js. Я просто обязан упомянуть Node.js. Лично я считаю, что на данный момент на вершине цепочки стоит Javascript, но Node уже долгое время также входит в список достаточно широко используемых языков. Кроме того, есть большое количество высококвалифицированных специалистов.

Язык программирования PHP

РНР изобретен Расмусом Лердорфом в конце 1994 года. Первая версия выпущена в 1995 году под именем «Инструментарий Персональных Домашних Страниц», затем она была переработана и названа PHP/FI Version 2 (FI -- модуль обработки данных для форм). Также была добавлена поддержка баз данных mSQL. С этого момента в разработке стали принимать участие добровольцы.

Статистика используемости РНР приблизительна, но, согласно исследованию, проведенному Netcraft, в начале 2001 года РНР использовался на более чем 5 300 000 сайтах по всему миру. Для сравнения: в это время число IIS серверов было примерно таким же (5 млн). Разработка интерпретатора РНР приняла форму организованного командного процесса, ядро интерпретатора разрабатывает компания Zend.com. При этом РНР распространяется свободно: его последнюю версию можно загрузить с сайта PHP.net. Модули РНР поставляются в комплекте с сервером Apache, в комплектах систем Linux.

Изначально аббревиатура РНР означала Preprocessor of Home Pages -- препроцессор домашних страниц. Это язык внедряемых в HTML-страницы сценариев, исполняемых на сервере. По большей части его синтаксис заимствован из таких языков, как С, Perl, Java, и при этом добавлена масса возможностей, которых этим языкам недостает. Проще говоря, синтаксис РНР -- это разумная альтернатива и строгости С, и «беспредельности» Perl.

РНР наделен практически полным набором функциональности, о которой (до появления РНР) мог только мечтать web-программист. Его цель -- позволить максимально быстро создавать динамически генерируемые web-страницы. С полным основанием можно заявить, что изучение и использование РНР будет выгодно как начинающим, так и профессиональным программистам.

Сравнение языка программирования РНР с другими языками программирования Web-приложений

Для ответа обоснования выбора средств программирования было произведено сравнение РНР с другими языками программирования Web-приложений. Основными конкурентами РНР являются технологии JSP (Java Server Pages и Java Scriptlets), ASP.NET (Active Server Pages), Perl, Cold Fusion Server Pages.

1. Языки программирования РНР и Perl

Язык Perl был создан программистом Ларри Уоллом (Larry Wall) и расшифровывается как Practical Extraction and Report Language. Перевести это можно как "язык для практического извлечения данных и составления отчетов". Perl является интерпретатором и появился намного раньше, чем Web. С появлением интернета язык Perl оказался удобным инструментом для создания динамических Web-страниц. Большое распространение Perl получил потому, что был доступен на каждом Web-сервере, поскольку практически все они работали под управлением UNIX, и альтернативой ему являлся лишь более сложный язык С. Perl проигрывает РНР в изяществе, притом, что РНР предлагает функциональность, аналогичную Perl при значительно меньшей избыточности и сравнительной простоте синтаксиса. Избыточность языка Perl связана с тем, что он разрабатывался для самых разнообразных приложений, что не могло не сказаться на его синтаксисе, в то время как РНР изначально разрабатывался для Интернета. По мнению очень многих пользователей, не знавших изначально ни РНР, ни Perl, выучить РНР намного проще.

2. Языки программирования РНР и Java

Вообще говоря, различают язык Java и технологию Java. Язык Java представляет собой С-подобный язык, который разрабатывался как "улучшенный C++". Технология Java включает в себя клиентскую и серверную часть, а также доступ к базам данных, поэтому наиболее корректно проводить сравнение технологии Java со связкой Apache/PHP/MySQL. Технология Java разрабатывалась как межплатформенная технология, позволяющая создавать Web-приложения корпоративного масштаба. Основными достоинствами этой технологии являются межплатформенная переносимость и объектно-ориентированный язык, что позволяет создавать сложные и объемные приложения. К числу недостатков можно отнести медленное выполнение, потребление большого количества памяти (плата за межплатформенную переносимость) и сложность разработки Web-приложений по сравнению с РНР. Между тем РНР почти не уступает Java в гибкости и масштабируемости созданных приложений. Кроме того, использование Java для разработки достаточно простых приложений вряд ли оправдано, а при работе над серьезными задачами Java обходится дороже.

3. Языки программирования РНР и ASP.NET

ASP (Active Server Pages) -- язык сценариев от Microsoft. Если язык ASP значительно уступал РНР по многим параметрам, в первую очередь, по времени выполнения сценариев, то с появлением технологии ASP.NET ситуация изменилась. Основное достоинство ASP.NET заключается в возможности применения всей мощи интерфейса Windows для разработки Web-приложений. Это позволяет разрабатывать страницы со сложным интерфейсом, не заботясь о сохранении, шифровании и передаче переменных, используемых на динамических страницах. ASP.NET тесно интегрирован в новую технологию NET компании Microsoft. Главной особенностью разработки Web-приложений при помощи ASP.NET является возможность использовать любой язык программирования среды исполнения NET. Это может быть как модифицированный вариант Visual Basic -- Visual Basic.NET, так и новый язык С# или клон Java -- J#. Более того, в рамках одного Web-приложения могут быть использованы несколько языков программирования. Все это позволяет объединять в рамках одного проекта программистов, владеющих разными языками программирования. Код Web-приложения на ASP.NET компилируется в промежуточный язык MSIL (Microsoft Intermediate Language), иногда просто называемый IL. Аппаратно-независимый код на языке IL помещается в кэш Web-сервера для повышения производительности, по аналогии с байт-кодом Java. Но в отличие от технологии Java, обеспечивающей платформенную независимость, NET обеспечивает независимость от языка разработки. Выполнение Web-приложений ASP.NET на серверах, работающих не под Windows, практически невозможно. Более того, если Web-приложение интенсивно использует компоненты NET, просмотр динамической страницы будет возможен только под Windows и только с помощью браузера Internet Explorer. Поэтому в смысле переносимости РНР, безусловно, отличается от ASP.NET в лучшую сторону. Другой крайне немаловажный довод в пользу РНР заключается в быстром исправлении обнаруженных ошибок. Теоретически исправить их можно самостоятельно, если обладаете достаточной квалификацией. Также можно написать письмо разработчикам, и с большой долей вероятности, в следующей версии ошибка будет исправлена. А версии РНР выходят очень часто. Еще одним плюсом РНР, особенно важным для начинающих, является то, что его легче использовать для построения Web-приложений. Таким образом, при выборе между ASP.NET и РНР следует исходить из стоящей задачи. Если в сети Интранет крупной корпорации большинство серверов и клиентских машин работают под управлением Windows, применение ASP.NET более чем оправдано. В то же время для разработки Web-сайта, размещаемого в Интернете, целесообразнее использовать РНР.

4. Языки программирования РНР и ColdFusion

Пакет ColdFusion разработан фирмой Allaire и предназначен для быстрой разработки как интерактивных, так и динамических Web-документов путем обработки информации, полученной из базы данных. Минусом ColdFusion является достаточно низкая переносимость. РНР работает практически на всех платформах, a ColdFusion -- только на четырех: Win32, Solaris, HP/UX и Linux. Кроме того, ColdFusion, так же как и ASP, является коммерческой разработкой. ColdFusion достаточно мало распространен. По сравнению с РНР он более требователен к ресурсам. Плюсом ColdFusion является хорошая интегрированная среда разработки и, как следствие, более простые, чем в РНР языковые конструкции и более быстрое написание кода. Правда, из-за такой высокоуровневости языка некоторые задачи на нем решаются сложнее.

5. Языки программирования PHP 4.0 и PHP 5.0

Основные отличия заключаются в реализации объектно-ориентированной модели. РНР 4.0 работал на движке Zend Engine 1.0. К выходу РНР 5.0 фирма Zend полностью переписала движок и выпустила в свет Zend Engine 2.0, который, по словам создателей, реализует "новую объектную модель". По сравнению с РНР 4.0, в пятой версии языка появились следующие особенности:

1. Введены закрытые (private) и открытые (protected) члены и методы класса, а также абстрактные классы и методы.

2. Введены интерфейсы, при этом класс может реализовывать произвольный список интерфейсов.

3. В РНР 5 также присутствуют расширенные возможности для клонирования объектов. Предназначенный для этого конструктор копирования позволяет не просто идентично клонировать объекты, а изменять при этом некоторые их свойства.

4. Введены постоянные члены и методы класса.

5. Одним из важнейших нововведений является наличие деструкторов.

6. Хорошей новостью является введение в РНР 5.0 статических членов класса. В РНР 4.0, если возникала необходимость в использовании статических членов, приходилось пользоваться искусственным приемом, заключающемся в комбинации глобальных переменных со статическими методами. При этом получались классы, которые действовали так же, как статические. Прием этот, мягко говоря, не очень хороший, поскольку вызывал проблемы, связанные с использованием глобальных переменных. Теперь в РНР 5.0 статические методы можно объявлять явно при помощи ключевого слова static.

7. В РНР 5.0 введен механизм обработки исключений, отсутствующий в РНР 4.0. Таким образом, в результате подобных нововведений в объектную модель РНР 5.0 стал полностью профессиональным языком программирования, что позволяет использовать его для решения задач любой степени сложности.

«СРЕДНЯЯ ОБЩЕОБРАЗОВАТЕЛЬНАЯ ШКОЛА №5»

Исследовательская работа на тему:

«Язык Web-программирования - PHP»

Выполнил: учащийся

9 «А» класса

Рябов Артем

Педагог: Абдразакова А.К.

ВВЕДЕНИЕ………………………………………………………………………………….…...3

Глава 1. Вступление в PHP и MySQL………………………..……………..…….………….5

1.1. Что такое PHP?.………………………………………………………………………5

1.2. Возможности PHP…………………………………………………………………….5

1.3. Краткая история PHP……….…...…………………….……………………...…......6

1.4. Почему нужно выбирать PHP ………………………………………………………7

1.5. Что такое MySQL ……………………………………………………………………..7

1.6. Возможности MySQL…………………………………………………………………8

Глава 2. Примеры использования PHP……………………………………………………...9

2.1. Работа с формами……………………………………………………………………..9

2.2. Работа с MySQL (сохранение данных в базе данных)...…………………………11

2.3. Работа с MySQL (получение данных из базы данных).…………………………13

ЗАКЛЮЧЕНИЕ………………………………………………………………………..……….15

БИБЛИОГРАФИЧЕСКИЙ СПИСОК …………………………………………………...…16

ПРИЛОЖЕНИЯ………………………………………………………………………………...17

Введение

PHP - язык программирования, используемый на стороне WEB-сервера для динамической генерации HTML-страниц. Об этом говорит и расшифровка его названия: PHP - Personal HyperText Processor.

PHP - один из немногих языков программирования, созданных специально для разработки веб-приложений. Поэтому он включает в себя все функции, необходимые именно для работы на веб-сервере, и при этом лишен избыточности, свойственной многим его конкурентам.

Очень приятная особенность PHP - то, что его команды включаются в обычные HTML-страницы с помощью специальных тегов, которые и заставляют PHP-машину выполнять на сервере нужные действия. Программам на PHP не нужны специальные CGI-директории с особыми правами доступа. Более того, на одной страничке можно произвольно чередовать "простой" HTML и PHP-код.

PHP не зависит от платформы. PHP прекрасно интегрируется во все популярные веб-серверы: Apacce и IIS, Zens и Netscape Enterprise Server, работает под Windows и OS/2, MacOS и практически всеми UNIX-подобными системами. Как следствие - PHP работает практически у всех хостеров, разрешающих собственные выполняемые скрипты.

Замечательная особенность PHP - его интегрированность практически со всеми современными интернет-технологиями. PHP поддерживает большинство современных веб-протоколов: IMAP, FTP, POP, XML, SNMP и другие. PHP прекрасно работает с базами данных. Трудно найти СУБД, поддержка которой не была бы реализована в PHP. MySQL и MS SQL Server, PostgreSQL и Oracle, Sybase и Interbase... Один только перечень баз данных, поддерживаемых PHP, займет, наверное, целый экран.

PHP включает в себя огромное количество встроенных функций: обработки строк и массивов, работы с файловой системой и с HTTP, электронной почтой, датой и временем, кириллицей и другими национальными алфавитами... Когда я впервые начал программировать на PHP, то был просто поражен обилием встроенных функций! Благодаря им многие алгоритмы, требующие в большинстве языков написания программного кода размером в несколько экранов, реализуются на PHP одной командой (точнее, вызовом одной функции).

Современные тенденции развития языков программирования не обошли стороной и PHP. Средства объектно-ориентированного программирования появились еще в PHP3. А в объектной модели PHP4 в полном объеме реализованы классические понятия объектно-ориентированного программирования: наследование, инкапсуляция и полиморфизм.

Все вышеизложенное позволяет без всякой натяжки назвать PHP безусловным лидером среди языков веб-программирования.

Цель исследования – Изучить и посмотреть примеры выполнения скриптов PHP

Объект исследования –Язык PHP, Базы данных MySQL.

Предмет исследования – функциональное значение и актуальность языка.

Гипотеза исследования состоит в том, что данный язык очень простой, легко интегрируется в HTML, в связке PHP+MySQL+HTML намного превосходит простой HTML.

Исходя из гипотезы, сформированы следующие задачи :

Задачи:

Изучить особенности и возможности языка PHP;

Сравнить функционал PHP и HTML;

Познакомиться с базами данных MySQL;

Обработать полученные результаты, сделать выводы.

Теоретической основой представленного материала являются исторические данные, представленные в справочниках, материал из интернета.

Методы исследования: в процессе проведения исследований применялись описание, анализ литературы по теме, изучение некоторых переменных.

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

Структура и содержание работы включают:

Вводную часть, в которой обоснован выбор и актуальность темы.

Глава 1. «Вступление в PHP и MySQL» содержит 6 разделов. В первом разделе идет объяснение, что такое PHP. Во втором описаны его возможности. В третьем разделе главы описывается история языка PHP. В четвертом - сказано почему стоит выбирать именно этот язык программирования. Пятый и шестой разделы посвящены информации о базах данных MySQL.

Глава 2. «Примеры использования PHP» состоит из 3 разделов. В первом разделепоказано как в PHP легко обрабатывать данные с HTML – форм. Во втором мы будем заносить информацию в базу данных. В третьем разделе будем получать информацию из баз данных.

Заключение содержит основные выводы по теме, подтверждающие выдвинутую гипотезу исследования.

Глава 1. Вступление в PHP и MySQL

1.1. Что такое PHP?

PHP – это скрипт-язык (scripting language), встраиваемый в HTML, который интерпретируется и выполняется на сервере. Проще всего это показать на примере:

Пример

После выполнения этого скрипта мы получим страничку, в которой будет написано:

Hi, I"m a PHP script! (см. приложение 1)

Весьма просто и бесполезно.

Основное отличие от CGI-скриптов, написанных на других языках, типа Perl или C – это то, что в CGI-программах вы сами пишете выводимый HTML-код, а, используя PHP – вы встраиваете свою программу в готовую HTML-страницу, используя открывающий и закрывающий теги (в примере ).

Отличие PHP от JavaScript, состоит в том, что PHP-скрипт выполняется на сервере, а клиенту передается результат работы, тогда как в JavaScript-код полностью передается на клиентскую машину и только там выполняется.

Любители Internet Information Server найдут, что PHP очень похож на Active Server Pages (ASP), а энтузиасты Java скажут, что PHP похож на Java Server Pages (JSP). Все три языка позволяют размещать код, выполняемый на Web-сервере, внутри HTML страниц.

1.2. Возможности PHP

В нескольких словах – на PHP можно сделать все, что можно сделать с помощью CGI–программ. Например: обрабатывать данные из форм, генерировать динамические страницы, получать и посылать куки (cookies).

Кроме этого в PHP включена поддержка многих баз данных (databases), что делает написание Web-приложений с использованием БД до невозможности простым.

Вот неполный перечень поддерживаемых БД:

Adabas D InterBase Solid
dBase mSQL Sybase
Empress MySQL Velocis
FilePro Oracle Unix dbm
Informix PostgreSQL

Вдобавок ко всему PHP понимает протоколы IMAP, SNMP, NNTP, POP3 и даже HTTP, а также имеет возможность работать с сокетами (sockets) и общаться по другим протоколам.

1.3. Краткая история PHP

Началом PHP можно считать осень 1994 года, когда Расмус Лердорф (Rasmus Lerdorf) решил расширить возможности своей Home-page (Домашней страницы) и написать небольшой движок для выполнения простейших задач. Такой движок был готов к началу 1995 года и назывался Personal Home Page Tools. Умел он не очень много – понимал простейший язык и всего несколько макросов.

К середине 1995 года появилась вторая версия, которая называлась PHP/FI Version 2. Приставка FI – присоединилась из другого пакета Расмуса, который умел обрабатывать формы (Form Interpritator). PHP/FI компилировался внутрь Apache и использовал стандартный API Apache. PHP скрипты оказались быстрее аналогичных CGI – скриптов, так как серверу не было необходимости порождать новый процесс. Язык PHP по возможностям приблизился к Perl, самому популярному языку для написания CGI-программ. Была добавлена поддержка множества известных баз данных (например, MySQL и Oracle). Интерфейс к GD – библиотеке, позволял генерировать картинки на лету. С этого момента началось широкое распространение PHP/FI.

В конце 1997 Зээв Сураски (Zeev Suraski) и Энди Гутманс (Andi Gutmans) решили переписать внутренний движок, с целью исправить ошибки интерпретатора и повысить скорость выполнения скриптов. Через полгода, 6 июня 1998 года вышла новая версия, которая была названа PHP 3. К лету 1999 года PHP 3 был включен в несколько коммерческих продуктов. По данным NetCraft на ноябрь 1999 PHP использовался в более чем 1 млн. доменах.

1.4. Почему нужно выбирать PHP

Разработчикам Web-приложений нет необходимости говорить, что web-страницы - это не только текст и картинки. Достойный внимания сайт должен поддерживать некоторый уровень интерактивности с пользователем: поиск информации, продажа продуктов, конференции и т.п. Традиционно все это реализовалось CGI-скриптами, написанными на Perl. Но CGI- скрипты очень плохо масштабируемы. Каждый новый вызов CGI, требует от ядра порождения нового процесса, а это занимает процессорное время и тратит оперативную память. PHP предлагает другой вариант – он работает как часть Web-сервера, и этим самым похож на ASP от Microsoft.

PHP (Hypertext PreProcessor ) – один из самых популярных инструментов веб-программирования на стороне сервера. Работа PHP в самом простом варианте сводится к обработке http запроса клиента. Обработка запроса, в свою очередь, заключается в программном формировании гипертекста в соответствии с параметрами запроса, после чего полученная разметка возвращается клиенту. Когда клиент (интернет браузер) запрашивает обычную статическую интернет страницу (чаще всего с расширением html), сервер в качестве ответа возвращает ему содержимое этой страницу без изменений “как есть”. Если запрашивается php страница, то в процессе обработки запроса содержимое указанной страницы сначала обрабатывается интерпретатором PHP, и только потом результат этой обработки отправляется клиенту.

Другими словами, PHP – это препроцессор гипертекста , что и отражено в его названии. Пре процессор потому что окончательной обработке гипертекст подвергается уже на стороне клиента, результат которой мы видим в окне браузера (процессором гипертекста является уже сам браузер). Можно сказать, что PHP – это генератор гипертекста, поскольку в большинстве случаев его работа – это программная генерация по содержимому базы данных или по любой другой структурированной информации, размещенной на сервере. Аббревиатура выглядит, как PHP, а не как, к примеру, HPP или иначе, поскольку первоначально расшифровывалась как Personal Home Page Tools – инструментарий для создания персональных интернет страниц. Таким образом, первый вариант расшифровки PHP отражал его назначение, а нынешний – принцип работы.

PHP – это язык программирования , который поддерживает практически все : переменные, условные операторы, циклы, функции и т.д. PHP – это объектно-ориентированный язык программирования – он поддерживает , а также привычное наследование на уровне классов. PHP – это язык веб-программирования, поскольку он в первую очередь создан для разработки динамических интернет сайтов и поэтому содержит большое количество готовых решений, применяемых в этой сфере, таких как:

  • обработка и извлечение параметров http запросов GET и POST;
  • формирование и отправка http заголовков ;
  • инфраструктура для хранения данных сеанса ;
  • программные сервисы для работы с cookies ;

    cookies - текстовые данные, сохраняемые браузером на компьютере клиента, которые чаще всего содержат параметры доступа (логин и пароль) или персональные настройки пользователя. Cookies формируются браузером и автоматически, в ходе каждого удаленного обращения пересылаются серверу в заголовках http запроса.


  • работа с файлами по FTP протоколу ;
  • работа с базами данных посредствам ;
  • поддержка
  • поддержка HTTP авторизации ;
  • обмен сообщениями по электронной почте и многое другое.

В этом разделе я планирую кратко рассматривать ключевые моменты применения PHP для создания несложных веб-приложений. Материалы будут организованы в несколько разделов, по каждому из которых будут приведены примеры с их исходным кодом. Для самостоятельных экспериментов необходим или любой другой сайт, к которому у вас имеется полный доступ, и на сервере которого установлен PHP.

Основы программирования на PHP

Добавление в разметку кода PHP и результат работы препроцессора гипертекста

Программный код PHP добавляется непосредственно в любое место HTML разметки. Самой HTML разметки может и не быть вовсе, а исходный код страницы может быть представлен только фрагментом программы на PHP. В любом случае, для вставки PHP нужно использовать специальный тег и внутри него размещать текст программы. Делается это следующим образом:

код программы ?>

В ходе работы PHP интерпретатора секции заменяются на разметку, формируемую в результате работы размещенного в них программного кода. Для вывода результата работы препроцессора используется оператор echo , аргументами которого могут быть константы, переменные, функции или различного рода выражения, а результатом – текст. Самый простой вариант может выглядеть следующим образом:

"; ?>

Если вы откроете исходный код полученной страницы в браузере, то никакого PHP там уже не будет (если, конечно, на сервере установлен интерпретатор PHP). Смысла в таком использовании оператора echo не особо много. Вся прелесть PHP в том, что формируемый HTML может зависеть от параметров запроса, содержимого базы данных, политики безопасности и многого другого. Анализ и обработка всего этого выполняется с использованием знакомых практически всем , таких как циклы, условия, функции и т.п. Забегая вперед, приведу небольшой пример программы на PHP c использованием цикла и условного оператора, с тем, чтобы начальное представление о препроцессоре гипертекста стало более полным. Следующая программа выводит значения факториала чисел от 1 до 9.

Пример программы на PHP данная разметка сформирована программно интерпретатором PHP."; $f=1; for ($i=1; $i<10; $i++) { if ($i>1) $f=$f*$i; echo $i,"!=",$f,"
"; } ?>

Результат ее работы будет выглядеть в браузере примерно следующим образом:

1!=1 2!=2 3!=6 4!=24 5!=120 6!=720 7!=5040 8!=40320 9!=362880

Организация приложения из нескольких файлов PHP

Краткий условный или тернарный оператор

Ниже приведен общий вид условного оператора присваивания с использованием тернарного оператора:
$результат = условие? выражение если true: выражение если false;

Пример:
$result = ($a>5) ? $a+$b: $a-$b;

Если a больше 5 , то переменной result присваивается значение a+b , иначе a-b .

Альтернатива оператора if с большим количеством конструкций elseif . Выполнение операторов начинается с той секции case , со значением которой совпадет значение выражения и продолжается по всем последующим case , пока не встретится команда break - завершить выполнение. Секция default – альтернатива секции else в условном операторе.

Switch (выражение ) { case значение 1 : оператор 1 ; case значение 2 : оператор 2 ; case значение 3 : оператор 3 ; default: оператор, выполняемый “по-умолчанию” ; } do тело цикла ; while (условие );

Пример тот же:

$i=2; $f=1; do { $f=$f*$i; $i++; echo $i,"!=",$f,"
"; } while ($i<10);

Более подробно про цикл do ... while читаем .

Перебор элементов в массиве или оператор foreach

Про массивы еще будет сказано несколько слов отдельно, а ниже конструкция для перебора его элементов в цикле:

Foreach (массив as $элемент ) выражение, где что-то делаем с переменной $элемент ;

$values = array("for", "while", "do", "foreach"); echo "Циклы в php:","
"; foreach ($values as $operator) echo $operator, "
";

Циклы и оператор выбора в PHP, также, как и во многих других языках программирования поддерживают инструкции break – досрочного завершения цикла и continue – досрочного завершения текущей итерации цикла (переход к началу цикла). Более подробно про них читайте .