Рейтинг:  5 / 5

Звезда активнаЗвезда активнаЗвезда активнаЗвезда активнаЗвезда активна
 

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

Проще говоря, язык программирования PHP разработан специально для создания web-сценариев для последующего их исполнения на Web-сервере.

Название PHP первоначально произошло от английского Personal Home Page Tools, позже было переименовано в Hypertext Preprocessor, то есть «препроцессор гипертекста».

Одним из наиболее значительных преимуществ PHP перед таким языками, как например, С и Perl, является возможность создавать HTML-документы с внедренными командами PHP. Еще одно важное преимущество PHP – это то, что скрипты выполняются на стороне сервера. Таким образом, возможно обработать HTML-файлы процессором PHP так, что клиенты не смогут распознать, получили ли они HTML-файл либо выполненный скрипт.

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

Язык PHP совершенствуется в соответствии с возрастающими запросами.

 

История создания и развития

Первая версия PHP была разработана в 1994 году для личного использования: программист Расмус Лердорф (Дания) разместил в сети свое резюме и для того, чтобы всегда быть в курсе, кто и когда его просматривал, создал набор скриптов на Perl. Свою придумку Лердор и назвал PHP – Personal Home Page, то есть «Личная Домашняя Страница».

Вскоре, правда, скорости Perl перестало хватать, и датчанин придумал новый интерпретатор шаблонов с неоригинальным названием PHP/FI, где FI – это Forms Interpreter, то есть «интерпретатор форм». Написан он был на сей раз на C.

С 1997 года обработчик начал распространяться. Второй его версией (PHP/FI 2.0, также написанной на С) уже использовалось 50 тысяч доменов. Правда, в мировых масштабах эта цифра составила всего 1% от существующих в мире.

А в 1998 году PHP вышел практически в такой форме, которая известна сегодня – PHP 3.0. Перед запуском интерпретатора его код был полностью переписан израильскими программистами Зеев Сураски и Энди Гутмансом. Главной особенностью третьей версии стала возможность расширения ядра дополнительными модулями. Эта функция в будущем привлекла множество разработчиков модулей, что открыло перед PHP возможность использовать множество баз данных, протоколов и поддерживать многие API.

Благодаря тому, что к работе над PHP быстро подключилось немало разработчиков, язык стал стремительно развиваться и набирать популярность. Кстати, именно с третьей версии PHP перестало расшифровываться как «Личная Домашняя Страничка», и было презентовано в качестве акронима «PHP: hypertext Preprocessor».

В 1999 году Гутманс и Сураски разработали новый движок, Zend Engine, который обеспечивал более высокую производительность при разработке сложных приложений. Собственно PHP 4.0, базирующийся на данном движке, был представлен только в мае 2000 года. Кроме абсолютно нового движка, были внедрены и другие новшества (такие как, например, поддержка сессии, более-менее безопасные методы для обработки информации, которую вводит пользователь, новые языковые конструкции и т. д.).

В 2004 году ядро было снова обновлено – 13 июля вышла пятая версия PHP 5.0. Благодаря движку Zend Engine 2 производительность была увеличена. Кроме того, существенно расширились возможности интерпретатора. Например, он стал поддерживать язык разметки XML. Также разработчики добавили закрытые, защищенные и открытые члены и методы, окончательные члены и методы, деструктор, возможность клонирования объектов и интерфейсы.

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

Следующей рабочей версией PHP стала версия 5.4.

 

Набор средств для работы

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

Наиболее используемые средства PHP:

  • возможность взаимодействия с огромным количеством систем управления базами данных (такими как Oracle, Microsoft SOL, ODBC, FrontBase, DB++, MySQL и мн. др.);
  • автоматизация процессов извлечения GET-параметров, POST-параметров и переменных окружения в предопределенный массив;
  • автоматическое отправление HTTP-заголовков;
  • возможность работы с удаленными файлам, сокетами, локальными файлами;
  • работа с HTTP-авторизацией;
  • возможность работ с cookies;
  • возможность обработки загружающихся на сервер файлов;
  • работа с XForms.

Благодаря этим и многим другим возможностям, язык PHP занимает шестое место по популярности среди языков программирования (согласно данным корпорации TIOBE на декабрь 2012 года). PHP используют такие крупные сайты как Facebook и Википедия.

 

GUI-приложения

Несмотря на то, что PHP нечасто используется для создания GUI-приложений, он вполне эффективен в данном качестве. Существуют пакеты PHP-GTK и PHP-Ot, которые служат для создания кроссплатформенных приложений. По сути, данные пакеты – это обертки для библиотек виджетов.

Существует и пакет PHP для NET/Mono – Phalanger, с помощью которого, в компиляции с PHP-кодом, может быть создано практически любое серверное либо настольное приложение .NET.

Возможно создание и графических приложений в Windows – для этого служит пакет WinBinder, а также интегрированная среда Devel Studio.

 

Синтаксис PHP

Язык PHP по синтаксису похож на С, но при этом существуют и заимствования из языка Perlр – например, цикл foreach.

Для сокращения при записи конструкции используется тег <?=. Исполняется же код, который находится внутри ограничителей – <?php ?>. Собственно, с него и может начинаться любая программа. Все данные, которые располагаются вне ограничителей, будут выводиться без изменений. В ранних версиях допускалось использование и некоторых ограничителей ASP – таких как <% %>.

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

В PHP переход на новую строку рассматривается как пробел.

PHP поддерживает комментарии трех типов:

  1. В стиле языка С с ограничителями /* */
  2. Комментарии в С++, в начале обозначенные // и продолжающиеся до конца строки
  3. В стиле оболочки UNIX, начинающиеся с # и идущие до конца строки

 

Типы данных

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

Скалярные типы данных:

  • integer – целый тип
  • double, float – вещественный тип
  • boolean – логический тип
  • string – строковый тип
  • NULL – специальный скалярный тип

Диапазон Integer в PHP обычно составляет от −2 147 483 648 до 2 147 483 647, однако зависит также и от платформы. Могут использоваться числа десятичной, восьмеричной или шестнадцатеричной системах измерения. Double позволяет оперировать вещественными числами в диапазоне от ±1.7×10−308 до ±1.7×10+308

Данные логического типа могут иметь только одно из двух значений – TRUE либо FALSE («истина» либо «ложь»). Тип данных NULL обозначает данные без конкретного значения.

Нескалярные типы данных:

  • resource – ресурс
  • array – массив
  • object – объект

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

Существуют также и псевдотипы:

  • Mixed – необязательные параметры, один или несколько
  • Number – число (integer или float)
  • Callback или string – анонимная функция
  • Void – отсутствие параметров

 

Особенности работы интерпретатора

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

Порядок обработки скриптов:

  1. лексический анализ исходного кода, генерация лексем
  2. синтаксический анализ лексем
  3. генерация байт-кода
  4. выполнение байт-кода

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

 

Расширения

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

 

Режимы работы

Интерпретатор PHP может использоваться несколькими способами.

  1. Как модуль к веб-серверу – наиболее распространенный метод с наиболее простой конфигурацией.
  2. Как CGI – при вызове скрипта веб-сервер вызывает /usr/bin/php-cgi /path/to/script.php, и создается новый процесс. Более современные варианты – FastCGI и SCGI – позволяют не производить постоянный вызов, а перезапускать интерпретатор PHP только в том случае, если текущие FastCGI-процессы находятся в работе и после освобождения будут загружены новыми задачами снова. Процессы, превысившие время жизни, время простоя или отработавшие заданное количество запросов, завершаются принудительно.
  3. В качестве исполняемого файла – скрипта командной строки. Он вызывается пользователем и выполняется в окружении вызвавшего его пользователя. В таком случае PHP используется дл решения административных задач в ОС Linux, UNIX, Mac OS X, Microsoft Windows и AmigaOS.

 

Пасхалки в PHP

В PHP заложено несколько шуток – так называемых «пасхальных яиц». Они выводят различные изображения (зависит от версии), если любому PHP-скрипту будут переданы специальные GET-параметры.

Например, введя в адресную строку браузера значение:

любой_сценарий.php?=PHPE9568F36-D428-11d2-A769-00AA001ACF42

можно увидеть фотографию таксы, кролика, черного терьера либо игрушечного синего слона, а также изображение искаженного лого PHP.

Кроме того, существует значение, которое позволяет просмотреть список всех авторов PHP:

любой_сценарий.php?=PHPB8B5F2A0-3C92-11d3-A3A9-4C7B08C10000

Познавательно; работает только в версии 4.5.