Язык PHP для чайников: история появления, ключевые особенности. Введение в PHP Основы программирования на языке рнр примеры

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

И в самом деле, иногда просто не возникает в этом необходимости. Например, чтобы создать , вовсе не обязательно глубоко знать PHP, обычно знаний HTML и CSS вполне достаточно, иногда требуется что-то изменить и в PHP коде, но обычно метода «скопировал - вставил» бывает достаточно.

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

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

Так что же такое PHP программирование?

PHP – это язык программирования, также как и HTML и CSS.

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

Язык PHP может соседствовать в одном документе с языком HTML, так что вы можете вставлять код PHP в уже написанный HTML код. Эта особенность языка PHP позволяет вебмастеру добиться наибольшей свободы в своей работе.

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

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


Вот несколько примеров того, что можно делать с помощью языка программирования PHP:

Математические вычисления.

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

PHP может хранить информацию пользователя.

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

PHP может взаимодействовать с базами данных MySQL.

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

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

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

Например, вы сможете менять размер картинок, поворачивать их, менять их оттенок.

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

Список того, что можно сделать, применяя язык программирования PHP, огромен настолько, что можно очень долго перечислять все его возможности.

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

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


«Но Саймон! Почему?!", вы, вероятно, прокричите увидев этот текст на экране. И вот почему:

Перспективы трудоустройства

PHP-разработчики не пользуются спросом. По прошествии 22 лет, все компании, использующие PHP, сразу же отказались от него, как только был выпущен Node v0.0.1, потому что этот стек разработки мгновенно стал лучшим. Кроме того, всем известно, что для успешного запуска (забудем про Slack) вам нужно создавать веб-интерфейсы на Node, а данные сохранять в MongoDB.


Иначе просто невозможно добиться успеха.


Приведем немного научных™ фактов, чтобы доказать эти утверждения:

$заголовок = ‘PHP-разработчики не могут найти работу чтобы содержать свои семьи’;

Экосистема языка

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


В отличие от PHP, разработчикам Node не нужно беспокоиться о том, чтобы найти фреймворк, который придётся ненавидеть, потому что каждый просто пишет свой собственный. Создавая свои собственные фреймворки, разработчик может действительно выделиться на фоне конкурентов, изобретая колесо таким образом, который имеет смысл только для него самого (разработчика). Эта практика также удваивает гарантию сохранения работы, что очень важно, как показано в результатах научных™ исследований, приведенных выше. Также, это утраивает Фактор Крутости Разработчика™ (Developer Cool Factor™).


Ошеломляющее свидетельство превосходной экосистемы Node можно увидеть на графике ниже:



$заголовок = ‘Чем больше фреймворков - тем лучше’;

Временные затраты

Реальный уровень производительности разработчика можно измерить только оценив как он тратит собственное время. Видно, что разработчики PHP больше времени тратят на написание кода и построение функциональных приложений, чем на культивацию Фактора Крутости Разработчика™ и получение звёзд на GitHub. Это, очевидно, отразится на них негативно при работе в стартапе, ведь они используют свое время непродуктивно. Все мы знаем что звёзды GitHub - это количественный способ оценки навыков разработчика.


Неспособность PHP-разработчиков внести свой вклад в сообщество показана ниже:





$заголовок = ‘Выслушивать жалобы - менее продуктивно, чем жаловаться. Факт.’;

Вещи, которые вы не сможете сделать являясь PHP-разработчиком

  • Программировать асинхронно (по-настоящему!);
  • Получить простую и понятную последовательность параметров функций стандартной библиотеки;
  • Создать свой собственный шаблон приложения React TODO MVC;
  • Реализовать полноценный бэкенд на стороне сервера с фронтендом на стороне клиента;
  • Создавать собственные утечки памяти;
  • Сделать пробел значимым;
  • Добиться потери данных между запросами;
  • Решить проблему голода во всём мире;
  • Программировать на JavaScript;
  • Признаться людям, что вы - PHP-разработчик.

PHP как инструмент для бизнеса

Мы все знаем, что PHP, безусловно, уступает и не может использоваться при разработке бизнес-приложений, поэтому вот список предприятий-неудачников, использующих PHP, в сравнении со списком успешных компаний, реализующих свои продукты на основе Node:



$заголовок = ‘Node замечательный и эффективный инструмент зла’;

Заключение

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

Последнее обновление: 20.10.2017

На сегодняшний день PHP является наиболее распространенным языком веб-программирования. Подавляющие большинство сайтов и веб-сервисов в интернете написано с помощью PHP. По некоторым оценкам PHP применяется более чем на 80% сайтов, среди которых такие сервисы, как facebook.com, vk.com, baidu.com и другие. И такая популярность неудивительна. Простота языка позволяет быстро и легко создавать сайты и порталы различной сложности.

PHP был создан в 1994 году датским программистом Расмусом Лердорфом и изначально представлял собой набор скриптов на другом языке Perl. Позже этот набор скриптов был переписан в интерпретатор на языке Си. И с самого возникновения PHP (сокращение от PHP: Hypertext Preprocessor - PHP: Препроцессор гипертекста) представлял удобный набор инструментов для упрощенного создания веб-сайтов и веб-приложений.

Какие преимущества предоставляет PHP?

    Для всех наиболее распространенных операционных системам (Windows, MacOS, Linux) есть свои версии пакетов разработки на PHP, а это значит, что вы можете создавать веб-сайты на любой из этих операционных систем.

    PHP может работать в связке с различными веб-серверами: Apache, Nginx, IIS

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

    PHP похож на язык Си, поэтому, зная Си или один из языков с сиподобным синтаксисом, будет проще овладеть PHP

    PHP поддерживает работу с множеством систем баз данных (MySQL, MSSQL, Oracle, Postgre, MongoDB и другие)

    Распространенность хостинговых услуг и их дешевизна. Так как, как правило, хостинговые компании размещают веб-сайты на PHP на веб-серверах Apache или Nginx, которые работают на одной из операционных систем семейства Linux. И веб-серверы, и операционные системы на базе Linux бесплатны, что снижает общую стоимость использования хостинга

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

    К настоящему моменту (октябрь 2017) текущей стабильной версией PHP является PHP 7.1.

А теперь создадим первый маленький сайт на PHP. Но перед его созданием нам надо загрузить и установить все необходимые инструменты для разработки сайтов.

Язык программирования 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 стал полностью профессиональным языком программирования, что позволяет использовать его для решения задач любой степени сложности.

1 year ago | 98.5K

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

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

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

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

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

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

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

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

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

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

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

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

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

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