Язык PHP (PHP:HypertextPreprocessor) - один из наиболее популярных сценарных языков ввиду своей простоты, скорости выполнения, богатой функциональности и распространенности исходных кодов на основе лицензии PHP.
PHP состоит из ядра и набора подключаемых расширений: для работы с базами данных, сокетами, динамической графикой, криптографическими библиотеками, документами формата PDF и др. Возможна разработка своих собственных расширений с их последующим подключением. Хотя и существуют сотни расширений, однако в стандартную поставку входит лишь несколько десятков хорошо зарекомендовавших себя расширений.
Интерпретатор PHP подключается к веб- серверу либо через DLL модуль, созданный специально для этого сервера, либо в виде CGI -приложения.
В настоящее время PHP используется сотнями тысяч разработчиков. Порядка 20 миллионов сайтов сообщают о работе с PHP, что составляет более пятой доли доменов Интернета
Синтаксис PHP подобен синтаксису языка Си. При этом некоторые элементы, как например ассоциативные массивы и цикл foreach, заимствованы из языка Perl.
|
|
Для работы программы на PHP не требуется описывать какие-либо переменные, используемые модули, и т.п. Любая программа может начинаться непосредственно с оператора PHP.
<?php
echo 'Hello, world!';
?>
Помимо ограничителей <?php?>, допускается использование дополнительных вариантов, таких как <??> и <script language="php"> </script>. Кроме того, до версии 6.0 допускается использование ограничителей языка программирования ASP <% %>.
Имена переменных начинаются с символа $, тип переменной объявлять не требуется. В отличие от имен функций и классов, имена переменных чувствительны к регистру. Переменные обрабатываются в строках, заключенных в двойные кавычки.
Инструкции завершаются точкой с запятой ()
PHP поддерживает два типа комментариев:
- в стиле языка С (ограниченные /* */),
- C++ (начинающиеся с // и идущие до конца строки)
PHP является языком программирования с динамической типизацией, не требующим указания типа при объявлении переменных, равно как и самого объявления переменных. Преобразования между скалярными типами может осуществляться автоматически (хотя и имеются возможности для явного преобразования типов).
К скалярным типам данных относятся
- целый тип (integer),
- вещественный тип данных (float, double),
- логический тип (boolean),
- строковый тип (string)
- специальный тип NULL.
К нескалярным типам относится
- "ресурс" (resource),
- массив (array)
- и объект (object).
Тип NULL предназначен для переменных без определенного значения. Значение NULL принимают неиницализированные переменные, переменные инициализированные константой NULL, а также переменные, удаленные при помощи конструкции unset().
|
|
Ссылки на внешние ресурсы имеют тип resource. Переменные данного типа, как правило, представляют собой дескриптор, позволяющий управлять внешними объектами, такими как файлы, динамические изображения, результирующие таблицы базы данных и т. п.
Массивы поддерживают числовые и строковые ключи и являются гетерогенными. Массивы могут содержать значения любых типов, включая другие массивы. Суперглобальными массивами (superglobal arrays) в PHP называются предопределенные массивы, которые видны в любом месте исходного кода без использования ключевого слова global.
- $GLOBALS - массив всех глобальных переменных (в том числе и пользовательских).
- $_SERVER - содержит множество информации о текущем запросе и сервере.
- $_ENV - текущие переменные среды. Их набор специфичен для каждой конкретной платформы, на которой выполняется сценарий.
- $_GET - ассоциативный массив с параметрами GET-запроса. В исходном виде эти параметры доступны в $_SERVER['QUERY_STRING'] и в $_SERVER['REQUEST_URI'] в составе URI.
- $_POST - ассоциативный массив значений полей HTML -формы при отправки методом POST.
- $_FILES - ассоциативный массив со сведениями об отправленных методом POST файлах. Каждый элемент имеет индекс идентичный значению атрибута "name" в форме и, в свою очередь, также является массивом со следующими элементами:
- ['name'] — исходное имя файла на компьютере пользователя.
- ['type'] — указанный агентом пользователя MIME- тип файла.
- ['size'] — размер файла в байтах.
- ['tmp_name'] — полный путь к файлу во временной папке.
- ['error'] — код ошибки.
- $_COOKIE - ассоциативный массив с переданными агентом пользователя значениями cookie.
- $_REQUEST - общий массив вводных данных запроса пользователя как в массивах $_GET, $_POST, $_COOKIE. Начиная с версии PHP 4.1 включается и содержимое $_FILES.
- $_SESSION - информация о текущей сессии пользователя.
PHP поддерживает широкие объектно-ориентированные возможности, полная поддержка которых была введена в пятой версии языка. Класс в PHP объявляется с помощью ключевого слова class. Методы и поля класса могут быть общедоступными (public, по умолчанию), защищенными (protected) и скрытыми (private). PHP поддерживает все три основные механизма ООП — инкапсуляцию, полиморфизм и наследование (родительский класс указывается с помощью ключевого слова extends после имени класса). Поддерживаются интерфейсы (ставятся в соответствие с помощью implements). Разрешается объявление финальных, абстрактных методов и классов. Множественное наследование классов не поддерживается, однако класс может реализовывать несколько интерфейсов. Для обращения к методам родительского класса используется ключевое слово parent. Экземпляры класса создаются с помощью ключевого слова new, обращение к полям и методам объекта производится с использованием символов ->. Для доступа к членам класса из его методов используется переменная $this.
Среди наиболее часто используемых возможностей PHP стоит отметить следующие:
- имеется большой набор функций для работы со строками;
- работа с регулярными выражениями PCRE.
- работа с базами данных, осуществляемая посредством модулей:
- php5-mysql для MySQL,
- php5-pgsql для PostgreSQL
- и др.
- для PHP разработаны средства шаблонирования веб-страниц, позволяющие эффективно разделить представление от модели, например Smarty;
- имеется библиотека для работы с графическими изображениями GD, позволяющая производить преобразования с графическими файлами, и создавать изображения "на лету".
· 10. Лабораторная работа: Разработка CGI-приложений на Perl и PHP
Цель работы - oзнакомление с: основами языков разработки веб-сценариев на языках Perl и PHP; синтаксисом языков Perl и PHP; реализацией обработки данных, полученых от клиентского приложения, на стороне веб- сервера.