язык программирования рнр что это

Что такое PHP и почему его все ненавидят

Несмотря на то, что 83% сайтов в интернете работают на PHP.

История языка

Изначально PHP расшифровывался как Personal Home Page Tools — инструменты для создания персональных страниц. Дело в том, что раньше, чтобы сделать функциональный сайт, чаще всего использовали C, Perl и CGI-скрипты. Звучит сложно, на деле — тоже сложно. Единственным способом сделать что-то своё и не изучать при этом три тома по программированию был PHP.

Например, можно сделать так:

Привет! А вы знаете, что

В результате на странице получится строчка: «Привет! А вы знаете, что этот код написан на PHP?»

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

PHP — это просто

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

Комментарии и точка с запятой. Комментарии можно ставить в любом месте — достаточно написать два слеша подряд. А точка с запятой ставится после каждой команды — точно так же, как в С, Pascal, JavaScript и ещё в сотнях других языков.

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

Вывод на экран. В HTML-коде достаточно вставить команду echo, которая помещает текст в то место, откуда вызвали команду. Например, этот код покажет заголовок первого уровня с текстом «Заголовок, собранный на PHP»:

И этот код сделает то же самое:

Ещё в PHP есть классы и объекты, автоматическое приведение типов (хотя мало кто понимает, как оно там работает в сложных примерах) и множество встроенных функций, которые упрощают разработку и помогают быстро писать код. А самое главное — PHP сам заставляет работать любой код, если он хоть как-то написан по правилам языка. Даже если внутри будет полная чушь, но похожая на PHP-код — интерпретатор его старательно выполнит, и, скорее всего, многое из этого будет даже работать.

Для чего нужен PHP

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

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

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

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

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

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

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

Почему все ненавидят PHP

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

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

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

Любые переменные в любом месте. Понадобилась новая переменная? Объявите её на любом участке кода и сразу берите в работу. Это удобно для первоначальной разработки, когда ты просто берёшь новую переменную там, где она понадобилась, и делаешь с ней что хочешь. Но когда проходит время или кто-то другой хочет разобраться в коде, то такой подход сильно затрудняет работу.

Например, можно написать так:

Когда новый программист захочет понять, за что отвечают переменные а и b, он найдёт место, где они объявляются, и посмотрит, какого они типа и для чего использовались вначале. Но разработчик мог в процессе передумать и начать использовать эти переменные для других целей с новыми типами данных. Чтобы это понять, нужно просмотреть весь код и разобраться в логике, а это долго и трудно.

Стоит ли учить PHP?

Зависит от задачи. Дело в том, что не менее 80% сайтов уже сейчас работают на PHP: это значит, что их нужно будет еще какое-то время поддерживать. Ещё лет 5–10 спрос на PHP точно будет.

Однозначно стоит учить PHP, если хотите работать с Вордпрессом, Друпалом, Джумлой и другими известными системами управления сайтами. Они написаны на PHP, и все надстройки и дополнения — тоже. Хороший разработчик WordPress сейчас на вес золота.

Будут ли веб-разработчики массово переходить на другие технологии — вопрос открытый. Сейчас, если вы покупаете виртуальный хостинг, вам сразу включают интерпретатор PHP, потому что все его используют. А другие технологии типа Python или Node.js — не включают, их нужно устанавливать отдельно.

Но ведь и веб — это не навсегда. Ещё лет 20, и понятие веб-сайта может безнадёжно устареть, потому что люди будут в приложениях, соцсетях или ещё где похуже.

Наверное, ответ на вопрос такой: если вам до 20 лет, то уже не надо учить PHP. А если ближе к 40–50 и вы хотите заниматься вебом — то определённо да.

Что дальше

В следующей серии попрактикуемся в PHP — напишем свой код для пользы дела или для развлечений.

Источник

Язык программирования PHP: от истоков до современности

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

Что за язык PHP и почему он так популярен

PHP: Hypertext Preprocessor (изначально Personal Home Page Tools, «Инструменты для создания персональных веб-страниц») — один из лидирующих языков современной веб-разработки. Его отцом считается датский программист Расмус Лердорф, который в 1994 году создал набор скриптов на Perl — ту самую «персональную домашнюю страницу», которая легла в основу PHP.

Первое свойство: интерпретируемость

Главная характеристика PHP — интерпретируемость. В отличие от Java, которая компилируется, а затем запускается в работу, PHP создается во время обращения к нему. Человек открывает сайт, на сервер посылается запрос, и в это время компилируется код. Каждый скрипт компилируется в реальном времени, а затем выполняется.

Приводим пример кода:

Благодаря этому свойству PHP — очень гибкий язык. Например, Java-программист вводит название класса один раз — теперь оно неизменно. PHP же компилируется в рантайме и можно подставить любое название класса из переменной.

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

Второе свойство: динамическая типизация

Языки программирования бывают:

1) со статической типизацией;

2) с динамической типизацией.

В первом случае тип переменной определен жестко и заранее. Если это число, программист напишет тип int. Если строка — string. Во втором случае переменная может быть одновременно числом, строкой, массивом, объектом — чем угодно. Одной переменной можно присвоить число, затем массив, объект — и язык программирования это позволит. PHP относится ко второй группе.

Но есть проблема

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

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

Обзор версий: между первой и седьмой

Версии с первой по третью были «сырыми»: мало возможностей, хотя для создания простых сайтов их хватало. С версии 5.4 PHP стал отлаженной технологией. До этого было слишком много нюансов, и работать с ними было непросто.

Релизы 5.5 и 5.6 — серьезные, проверенные временем вещи. Они отлично себя показали и достаточно защищены от инъекций и возможностей взлома.

Шестую версию пропустили: она должна была поддерживать Unicode на уровне ядра, но релиз не состоялся. «PHP6 был амбициозным, но отстойным. Вот почему мы занялись PHP 7, в процессе пропустив шестую версию», — прокомментировал в своем блоге Vilson Duka, один из разработчиков.

Анимационное видео Питера Кокота о развитии ключевых модулей PHP в течение21 года жизни языка.

Седьмая версия считается революционной в плане скорости. 5.6 медленно работала с массивами и вообще с переменными: обработка статически нетипизированных данных происходила долго. Строка обрабатывалась в 60 раз медленнее, чем на C#. Это не бросается в глаза — речь о долях секунды. Но когда у тебя миллиард пользователей, как на Facebook, скорость критична.

HipHop и прорыв в скорости

Facebook написан на PHP — проблему нужно было решать. Их программисты создали для пятой версии собственный интерпретатор языка. Они компилировали его изначально в промежуточные коды, а затем отправляли в обычный интерпретатор Zend Engine. Программисты Facebook ввели статическую типизацию и ускорили работу языка в два раза. Это стало настоящим прорывом. Транслятор назвали HHVM, или HPHP Compiler — «HipHop для языка PHP».

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

С версии 7.0 до 7.3, которая сейчас в бета-тестировании, язык ускорялся — разница видна по замерам:

7.3 станет последним релизом: поддерживать и править ошибки будут, но ничего принципиально нового не появится.

Будущее PHP: восьмая версия

Главная задача — сделать PHP быстрым при сохранении гибкости динамического языка. Разработчики понимают, что в дальнейшем нужно приходить к статической типизации. Сейчас рассматривают опциональный вариант, когда ее можно включать в определенных частях скрипта. Это наилучший путь из возможных.

Восьмая версия появится ориентировочно в 2020–2022 годах. На open source-платформах изменения принимаются общим голосованием совета разработчиков. Сейчас идет тестирование нововведений в PHP 8.

В мире PHP ничего не происходит без движения сообщества.

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

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

Для чего используют PHP

Единственное применение — это веб-разработка. На PHP невозможно сделать десктопные приложения, он не используется в мобильной разработке — только веб. Но сегодня эта область огромна. Даже некоторые десктопные приложения уходят в веб — тот же Microsoft Office имеет облачный сервис. Ранее считалось, что PHP не подходит для больших высоконагруженных проектов, но опыт Facebook доказывает обратное. «Авито» — еще один пример удачной реализации. Подробнее о том, как использовать PHP — в нашей статье Для чего используют PHP и почему его ненавидят.

С чего начать изучение

PHP легко изучить самостоятельно за счет низкого порога входа. Буквально за вечер можно прочитать документацию и написать скрипт, который будет возвращать данные на сайт. Другие языки (C#, Java) имеют более высокий порог вхождения, и одного дня мало, чтобы создать работающий код. Сегодня на российском рынке труда из-за низкого порога входа PHP-кодеров много, и большинство — невысокого уровня.

Хороший разработчик PHP фактически применяет те же паттерны программирования, что и в статически типизированных языках. На PHP даже сложнее программировать, и вот почему. Если в Java или C# допустить алгоритмическую ошибку, например, присвоить переменной не тот тип, — они «дадут по рукам». PHP же это пропустит, и программист сломает голову: что не так? Ведь все работает, но неправильно. Из-за этого на современном рынке хорошим программистам PHP готовы платить чек не ниже, чем другим разработчикам. Но хорошего специалиста сложно найти.

Чтобы учить язык, нужно задать себе вопрос: «Для чего он мне?» Учить ради процесса учебы — бесполезно, ведь без практического применения знания забудутся. Нужно поставить конкретную задачу и искать решение.

Начинайте изучать PHP в интернете: сегодня выпускается много видеоуроков, онлайн-лекций и тренажеров. Рекомендуем наш курс «PHP-разработчик», где вы прокачаете свой уровень с нулевого до профессионального.

Автор в сфере IT, digital, экономики и финансов. Ведет некоммерческий проект для начинающих писателей «ЛитЦех».

Программное обеспечение с открытым исходным кодом.

Среда выполнения компьютерной программы.

«Вживление» чужого вредоносного кода в программу.

Источник