Спонсор: Microsoft
Воронежский государственный университет
Опубликован: 04.02.2009 | Доступ: свободный | Студентов: 8217 / 665 | Оценка: 4.14 / 3.78 | Длительность: 19:54:00
Лекция 5:

Языки разработки сценариев Perl и PHP

Язык PHP

Язык PHP (PHP :Hypertext Preprocessor) - один из наиболее популярных сценарных языков ввиду своей простоты, скорости выполнения, богатой функциональности и распространенности исходных кодов на основе лицензии 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, позволяющая производить преобразования с графическими файлами, и создавать изображения "на лету".
Михаил Олифиренко
Михаил Олифиренко
Александр Табачук
Александр Табачук

Это только у меня не работает кнопочка "Получить код DreamSpark"? Пишет "временно не доступно..." А когда заработает?