PHP
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 – таких как <% %>.
Имена переменных, вне зависимости от их типа, необходимо предварять символом $. Причем, следует помнить, что имена переменных (собственно, как и имена классов, функций, а также константы)необходимо указывать с учетом регистра.
Так же, как в HTML и в прочих языках со свободным форматом, в 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.