HTML Diff
1 added 1 removed
Original 2026-01-01
Modified 2026-03-10
1 <p>Языку программирования PHP уже давно предсказывали исчезновение. Но годы идут, а этот язык по-прежнему в топ-10 рейтинга TIOBE. Почему он так популярен и распространён? Об этом и поговорим.</p>
1 <p>Языку программирования PHP уже давно предсказывали исчезновение. Но годы идут, а этот язык по-прежнему в топ-10 рейтинга TIOBE. Почему он так популярен и распространён? Об этом и поговорим.</p>
2 <h2>Что за язык такой, PHP?</h2>
2 <h2>Что за язык такой, PHP?</h2>
3 <p>PHP: Hypertext Preprocessor ("Инструменты для создания персональных веб-страниц", Personal Home Page Tools) до сих пор считается лидирующим в сфере современной веб-разработки. Его создал программист из Дании Расмус Лердорф, разработавший в 1994 г. набор скриптов на Perl - речь идёт о той самой "персональной домашней странице", ставшей впоследствии основой PHP.</p>
3 <p>PHP: Hypertext Preprocessor ("Инструменты для создания персональных веб-страниц", Personal Home Page Tools) до сих пор считается лидирующим в сфере современной веб-разработки. Его создал программист из Дании Расмус Лердорф, разработавший в 1994 г. набор скриптов на Perl - речь идёт о той самой "персональной домашней странице", ставшей впоследствии основой PHP.</p>
4 <p>Спустя какое-то время языком стали интересоваться разработчики со всего мира. Фактически, PHP является одним из старейших языков, если мы говорим об open source. Сегодня его поддерживают энтузиасты во главе с Zend Technologies. Таким образом, PHP активно развивается по сегодняшний день.</p>
4 <p>Спустя какое-то время языком стали интересоваться разработчики со всего мира. Фактически, PHP является одним из старейших языков, если мы говорим об open source. Сегодня его поддерживают энтузиасты во главе с Zend Technologies. Таким образом, PHP активно развивается по сегодняшний день.</p>
5 <h2>Об интерпретируемости PHP</h2>
5 <h2>Об интерпретируемости PHP</h2>
6 <p>Основная характеристика языка программирования PHP - его<strong>интерпретируемость</strong>. Тот же Java сначала компилируется, потом запускается в работу. Что касается PHP, то он создаётся в процессе обращения к нему. То есть пользователь открывает web-сайт, на сервер отправляется запрос, и в это самое время компилируется PHP-код. При этом каждый скрипт компилируется в режиме реального времени, а потом выполняется.</p>
6 <p>Основная характеристика языка программирования PHP - его<strong>интерпретируемость</strong>. Тот же Java сначала компилируется, потом запускается в работу. Что касается PHP, то он создаётся в процессе обращения к нему. То есть пользователь открывает web-сайт, на сервер отправляется запрос, и в это самое время компилируется PHP-код. При этом каждый скрипт компилируется в режиме реального времени, а потом выполняется.</p>
7 <p>За счёт вышеописанного свойства PHP считается очень<strong>гибким языком</strong>. В том же Java разработчик вводит название класса лишь единожды, и оно не меняется. Язык PHP, в отличие от Java, компилируется в рантайме, поэтому есть возможность подставить, по сути, любое название класса из переменной.</p>
7 <p>За счёт вышеописанного свойства PHP считается очень<strong>гибким языком</strong>. В том же Java разработчик вводит название класса лишь единожды, и оно не меняется. Язык PHP, в отличие от Java, компилируется в рантайме, поэтому есть возможность подставить, по сути, любое название класса из переменной.</p>
8 <p>Но за гибкость надо платить. В случае с PHP мы платим скоростью работы web-сайта.</p>
8 <p>Но за гибкость надо платить. В случае с PHP мы платим скоростью работы web-сайта.</p>
9 <h2>О динамической типизации в PHP</h2>
9 <h2>О динамической типизации в PHP</h2>
10 - <p>Как известно, языки программирования бывают с динамической и статической типизацией. Во втором случае тип переменной определяется заранее и жёстко. Если это число, то int, если строка, то string. В первом случае переменная может являться одновременно и числом, и строкой, и объектом, и массивом - чем угодно. Мы можем присвоить дной переменной число, потом массив - язык программирования позволит нам так сделать. Именно таким и является PHP.</p>
10 + <p>Как известно, языки программирования бывают с динамической и статической типизацией. Во втором случае тип переменной определяется заранее и жёстко. Если это число, то int, если строка, то string. В первом случае переменная может являться одновременно и числом, и строкой, и объектом, и массивом - чем угодно. Мы можем присвоить одной переменной число, потом массив - язык программирования позволит нам так сделать. Именно таким и является PHP.</p>
11 <h2>Но не всё так просто</h2>
11 <h2>Но не всё так просто</h2>
12 <p>У динамической типизации есть минусы, и заключаются они в том, что она снижает быстродействие и потребляет много оперативной памяти. Опять же, мы платим за гибкость и удобство. Впрочем, PHP-разработчики сейчас активно работают над тем, чтобы уменьшить потребление памяти, сохранив гибкость статически нетипизированного языка программирования.</p>
12 <p>У динамической типизации есть минусы, и заключаются они в том, что она снижает быстродействие и потребляет много оперативной памяти. Опять же, мы платим за гибкость и удобство. Впрочем, PHP-разработчики сейчас активно работают над тем, чтобы уменьшить потребление памяти, сохранив гибкость статически нетипизированного языка программирования.</p>
13 <p>Как бы там ни было, два вышеописанные свойства объясняют, почему PHP так популярен.</p>
13 <p>Как бы там ни было, два вышеописанные свойства объясняют, почему PHP так популярен.</p>
14 <h2>Между первой и седьмой промежуток небольшой</h2>
14 <h2>Между первой и седьмой промежуток небольшой</h2>
15 <p>Версии PHP с первой по третью были, мягко говоря, "сырыми". Но хоть возможностей было и мало, для создания простых сайтов этого хватало. Впрочем, хватало и различных нюансов, поэтому работать с этим языком программирования было непросто. Но, начиная с версии 5.4,<strong>PHP превратился в отлаженную технологию</strong>.</p>
15 <p>Версии PHP с первой по третью были, мягко говоря, "сырыми". Но хоть возможностей было и мало, для создания простых сайтов этого хватало. Впрочем, хватало и различных нюансов, поэтому работать с этим языком программирования было непросто. Но, начиная с версии 5.4,<strong>PHP превратился в отлаженную технологию</strong>.</p>
16 <p>Неплохо себя показали релизы 5.5 и 5.6. А вот шестую версию пропустили. Предполагалось, что она будет поддерживать Unicode на уровне ядра, однако релиз не состоялся. Один из разработчиков тогда сказал, что PHP 6 был весьма амбициозным, но довольно отстойным проектом. В результате занялись PHP 7. И не зря - эту версию считают революционной с точки зрения быстродействия. Та же PHP 5.6 довольно медленно работала с массивами, да и вообще с переменными. Собственно говоря, строка обрабатывалась в десятки раз медленнее, чем на C#. С одной стороны, речь идёт о долях секунды, поэтому проблема не бросается в глаза. С другой, если у тебя миллионы пользователей, это недопустимо. А ведь мы говорим про Facebook, между прочим.</p>
16 <p>Неплохо себя показали релизы 5.5 и 5.6. А вот шестую версию пропустили. Предполагалось, что она будет поддерживать Unicode на уровне ядра, однако релиз не состоялся. Один из разработчиков тогда сказал, что PHP 6 был весьма амбициозным, но довольно отстойным проектом. В результате занялись PHP 7. И не зря - эту версию считают революционной с точки зрения быстродействия. Та же PHP 5.6 довольно медленно работала с массивами, да и вообще с переменными. Собственно говоря, строка обрабатывалась в десятки раз медленнее, чем на C#. С одной стороны, речь идёт о долях секунды, поэтому проблема не бросается в глаза. С другой, если у тебя миллионы пользователей, это недопустимо. А ведь мы говорим про Facebook, между прочим.</p>
17 <h2>HipHop для PHP. Прорыв в скорости</h2>
17 <h2>HipHop для PHP. Прорыв в скорости</h2>
18 <p>Как известно, Facebook был написан на PHP, поэтому проблему скорости нужно было решать. Решение было найдено - собственный интерпретатор языка. Разработчики компилировали его изначально в промежуточные коды, а потом отправляли в обычный интерпретатор Zend Engine. Таким образом, программисты из Facebook внедрили статическую типизацию, ускорив работу PHP в два раза. И это был прорыв на то время. Транслятор назвали HHVM - "HipHop для языка PHP".</p>
18 <p>Как известно, Facebook был написан на PHP, поэтому проблему скорости нужно было решать. Решение было найдено - собственный интерпретатор языка. Разработчики компилировали его изначально в промежуточные коды, а потом отправляли в обычный интерпретатор Zend Engine. Таким образом, программисты из Facebook внедрили статическую типизацию, ускорив работу PHP в два раза. И это был прорыв на то время. Транслятор назвали HHVM - "HipHop для языка PHP".</p>
19 <p>Но команда PHP-разработчиков тоже не тратила времени даром. Она плотнее занялась массивами и со временем выпустила седьмую версию языка, работающую быстрее HHVM. Кстати, в PHP 7 по-прежнему практически отсутствует статическая типизация. Она есть лишь в параметрах функции, поэтому, можно считать, что её и нет. Далее язык продолжал ускорятся, улучшая показатели даже в пределах с 7.0 до 7.3.</p>
19 <p>Но команда PHP-разработчиков тоже не тратила времени даром. Она плотнее занялась массивами и со временем выпустила седьмую версию языка, работающую быстрее HHVM. Кстати, в PHP 7 по-прежнему практически отсутствует статическая типизация. Она есть лишь в параметрах функции, поэтому, можно считать, что её и нет. Далее язык продолжал ускорятся, улучшая показатели даже в пределах с 7.0 до 7.3.</p>
20 <h2>Будет ли новая версия PHP?</h2>
20 <h2>Будет ли новая версия PHP?</h2>
21 <p>Разработчики понимают, что надо сделать PHP быстрее, сохранив гибкость, а значит, придётся переходить к статической типизации. Пока рассматривается оптимальный вариант, предполагающий наличие оной в некоторых частях скрипта. Ориентировочная дата выхода PHP 8 - 2022 год, но может и раньше.</p>
21 <p>Разработчики понимают, что надо сделать PHP быстрее, сохранив гибкость, а значит, придётся переходить к статической типизации. Пока рассматривается оптимальный вариант, предполагающий наличие оной в некоторых частях скрипта. Ориентировочная дата выхода PHP 8 - 2022 год, но может и раньше.</p>
22 <p>Кстати, на сегодняшний день проходит тестирование нововведений в PHP 8. Расмус Лердорф, создатель PHP, утверждает, что в PHP-мире ничего не случается без движения сообщества. Ту же статическую типизацию хотели внедрить ещё в версии номер 7, но нашлись изъяны, и она не прошла голосование. Также стоит добавить, что в 8-й версии хотят полностью отойти от языка C, на котором частично написан PHP. Кроме того, планируют ускорить работу с матрицами.</p>
22 <p>Кстати, на сегодняшний день проходит тестирование нововведений в PHP 8. Расмус Лердорф, создатель PHP, утверждает, что в PHP-мире ничего не случается без движения сообщества. Ту же статическую типизацию хотели внедрить ещё в версии номер 7, но нашлись изъяны, и она не прошла голосование. Также стоит добавить, что в 8-й версии хотят полностью отойти от языка C, на котором частично написан PHP. Кроме того, планируют ускорить работу с матрицами.</p>
23 <h2>Для чего нужен PHP?</h2>
23 <h2>Для чего нужен PHP?</h2>
24 <p>Как уже было сказано в начале статьи, - для веб-разработки. Только web и ничего кроме веба. Однако сегодня эта область просто безгранична, и даже десктопные приложения уходят в web - облачный сервис Microsoft Office тому пример.</p>
24 <p>Как уже было сказано в начале статьи, - для веб-разработки. Только web и ничего кроме веба. Однако сегодня эта область просто безгранична, и даже десктопные приложения уходят в web - облачный сервис Microsoft Office тому пример.</p>
25 <p>Кроме того, когда-то считалось, что PHP не подойдёт для крупных и высоконагруженных проектов, но опыт Facebook доказал обратное. Ещё один пример удачной реализации - Авито".</p>
25 <p>Кроме того, когда-то считалось, что PHP не подойдёт для крупных и высоконагруженных проектов, но опыт Facebook доказал обратное. Ещё один пример удачной реализации - Авито".</p>
26 <h2>Так стоит ли учить?</h2>
26 <h2>Так стоит ли учить?</h2>
27 <p>Несмотря на предсказания о скорой смерти, PHP до сих пор востребован. А за счёт низкого порога входа изучить его несложно. Те же C# и Java имеют более высокий порог вхождения. Впрочем, у низкого порога входа есть и минусы: сегодня на российском рынке труда PHP-разработчиков довольно много, и им платят так себе. Правда, это потому, что большинство из них имеют не очень высокий уровень.</p>
27 <p>Несмотря на предсказания о скорой смерти, PHP до сих пор востребован. А за счёт низкого порога входа изучить его несложно. Те же C# и Java имеют более высокий порог вхождения. Впрочем, у низкого порога входа есть и минусы: сегодня на российском рынке труда PHP-разработчиков довольно много, и им платят так себе. Правда, это потому, что большинство из них имеют не очень высокий уровень.</p>
28 <p>Что касается действительно профессиональных PHP-разработчиков, то они, по сути, используют те же паттерны проектирования, что и в случае со статически типизированными языками. Даже бытует мнение, что на PHP сложнее программировать. В той же Java или C# допустить алгоритмическую ошибку и присвоить переменной не тот тип вы не сможете. А язык программирования PHP это пропустит, в результате чего программисту придётся поломать голову с вопросом, что же не так. Вроде бы и работает всё, но, увы, неправильно.</p>
28 <p>Что касается действительно профессиональных PHP-разработчиков, то они, по сути, используют те же паттерны проектирования, что и в случае со статически типизированными языками. Даже бытует мнение, что на PHP сложнее программировать. В той же Java или C# допустить алгоритмическую ошибку и присвоить переменной не тот тип вы не сможете. А язык программирования PHP это пропустит, в результате чего программисту придётся поломать голову с вопросом, что же не так. Вроде бы и работает всё, но, увы, неправильно.</p>
29 <p>Именно поэтому настоящие эксперты PHP-разработки получают не намного меньше, чем программисты, владеющие другими языками. Только вот найти действительно хорошего специалиста - это сегодня проблема.</p>
29 <p>Именно поэтому настоящие эксперты PHP-разработки получают не намного меньше, чем программисты, владеющие другими языками. Только вот найти действительно хорошего специалиста - это сегодня проблема.</p>
30 <p>Как бы там ни было,<strong>начать изучать PHP - это лучше, чем не начать изучать ничего</strong>. К тому же, в сети есть множество неплохих курсов, уроков и лекций. Пройдя их, можно подумать и о переходе на более высокий уровень мастерства. А вот здесь помогут<strong>платные курсы для продвинутых разработчиков</strong>:</p>
30 <p>Как бы там ни было,<strong>начать изучать PHP - это лучше, чем не начать изучать ничего</strong>. К тому же, в сети есть множество неплохих курсов, уроков и лекций. Пройдя их, можно подумать и о переходе на более высокий уровень мастерства. А вот здесь помогут<strong>платные курсы для продвинутых разработчиков</strong>:</p>
31  
31