Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Язык PHP.doc
Скачиваний:
5
Добавлен:
21.09.2019
Размер:
142.34 Кб
Скачать

Константы

Константы объявляются в РНР при помощи функции define():

define(CONSTANT, value)

Первый параметр этой функции – имя константы, второй – её значение. При использовании константы на неё ссылаются по имени:

<?

define(CONSTANT1,15);

define(CONSTANT2,"\x20"); // код пробела

echo(CONSTANT1);

echo(CONSTANT2);

?>

По традиции имена констант пишут буквами верхнего регистра. Существует функция defined(), которая проверяет, определена ли константа:

<?

define(CONSTANT,"Hello");

if(defined("CONSTANT"))

{

echo("<p>CONSTANT is defined</p>");

}

?>

Массивы поддерживают числовые и строковые ключи и являются гетерогенными. Массивы могут содержать значения любых типов, включая другие массивы. Суперглобальными массивами (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, позволяющая производить преобразования с графическими файлами, и создавать изображения "на лету".

PHP MySQL

Лекция предназначена для знакомства со способами взаимодействия PHP и СУБД MySql. Основное внимание уделяется установке соединения с базой данных, функциям отправки запросов и обработке ответов (mysql_connect, mysql_query, mysql_result, mysql_num_rows, mysql_close). Пример - создание web -интерфейса для администрирования базы данных виртуального музея истории.

В дистрибутив PHP входит расширение, содержащее встроенные функции для работы с базой данных MySQL. В этой лекции мы познакомимся с некоторыми основными функциями для работы с MySQL, которые потребуются для решения задач построения web-интерфейсов с целью отображения и наполнения базы данных. Возникает вопрос, зачем строить такие интерфейсы? Для того чтобы вносить информацию в базу данных и просматривать ее содержимое могли люди, не знакомые с языком запросов SQL. При работе с web-интерфейсом для добавления информации в базу данных человеку нужно просто ввести эти данные в html-форму и отправить их на сервер, а наш скрипт сделает все остальное. А для просмотра содержимого таблиц достаточно просто щелкнуть по ссылке и зайти на нужную страницу.

Для наглядности будем строить эти интерфейсы для таблицы Artifacts, в которой содержится информация об экспонатах виртуального музея информатики. В предыдущей лекции мы уже приводили структуру этой коллекции, а также ее связи с коллекциями описания персон (Persons) и изображений (Images). Напомним, что каждый экспонат в коллекции Artifacts описывается с помощью следующих характеристик:

  • название (title);

  • автор (author);

  • описание (description);

  • альтернативное название (alternative);

  • изображение (photo).

Название и альтернативное название являются строками менее чем 255 символов длиной (т.е. имеют тип VARCHAR(255)), описание - текстовое поле (имеет тип TEXT), а в полях "автор" и "изображение" содержатся идентификаторы автора из коллекции Persons и изображения экспоната из коллекции Images соответственно.