Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
otvety_shilina.doc
Скачиваний:
6
Добавлен:
19.09.2019
Размер:
275.46 Кб
Скачать
  1. Создание классов, атрибутов и операций в php-5.

Структура класса

Минимальный вариант объявления класса имеет следующий вид:

class classname

{

}

Чтобы быть полезными, классы должны иметь атрибуты и операции. Атрибуты создаются путем объявления переменных внутри определения класса с помощью ключевого слова var. Следующий код создает класс classname с двумя атрибутами: $attribute1 и $attribute2.

class classname

{

var $attribute1;

var $attribute2;

}

Операции создаются путем объявления функций внутри определения класса. Следующий код создает класс classname с двумя операциями, которые не выполняют никаких действий. Операция operation 1() не принимает никаких параметров, а операция operation2() принимает два параметра.

class classname

{

function operation1 ()

{

}

function operation2 ($param1, $param2)

{

}

}

Использование атрибутов класса

В РНР5 введены модификаторы доступа, которые управляют видимостью атрибутов и методов. Модификатор доступа указывается перед объявлением атрибута или метода. РНР5 поддерживает следующие три различных модификаторов доступа:

  • Модификатор доступа public (общедоступный), устанавливаемый по умолчанию, означает открытый доступ к атрибуту или методу, что сродни полному отсутствию модификатора доступа. Элементы подобного рода доступны как изнутри, так и извне класса.

  • Модификатор доступа private (приватный) означает, что помеченный им элемент может быть доступен только изнутри класса. Его можно применять для всех атрибутов, если не использовать функции доступа __get() и __set (). В отношении методов данный модификатор указывается, если тот или иной метод является служебным и предназначенным только для внутренних целей класса. Приватные элементы не наследуются.

  • Модификатор доступа protected (защищенный) означает, что помеченный им элемент может быть доступен только изнутри класса. Он также существует во всех субклассах. Сейчас protected можно воспринимать как нечто среднее между public и private.

Класс описывается следующим образом:

PLAIN TEXT

PHP:

  1. class Main {

  2. }

Каждый класс может содержать конструктор и деструктор, описывающиеся функциями __construct() и __destruct().Конструктор вызывается при создании объекта и обычно выполняет такие полезные задачи по инициализации, как установка приемлемых начальных значений атрибутов или создание других объектов, требуемых для данного объекта. Деструкторы являются нововведением PHP5. Они очень полезны для выполнения различных действий по освобождению ресурсов, таких как закрытие открытых файлов или соединения с базой данных.

Для примера создадим простой класс с конструктором и деструктором:

PLAIN TEXT

PHP:

  1. new Main();

  2. class Main {

  3.     function __construct(){

  4.         echo "Object of class Main created

  5. ";

  6.     }

  7.     function __destruct(){

  8.         echo "Object of class Main destroyed

  9. ";

  10.     }

  11. }

После запуска этого скрипта, тестовая страница будет выглядить так:

Object of class Main created

Object of class Main destroyed

PHP 5 поддерживает ограничение видимости параметра класса. Используются стандартные в ООП термины - public, protected, private. Например: "public $public;"

В php существует поддержка статических методов и членов класса. Для объявления статического метода или параметра используется ключевое слово static. Доступ к статическим сущностям осуществляется через оператор "::":

PLAIN TEXT

PHP:

  1. StaticMethod::echoMessage();

  2. class StaticMethod {

  3.     public static $message = "Static message";

  4.     public static function echoMessage(){

  5.         echo self::$message;

  6.     }

  7. }

Этот код выводит на страницу текст, хранящийся в статической переменной $message. Кроме того, можно использовать константы, обращение к которым происходит так же, через оператор "::". Константа определяется выражением вида "const constant = 'value'".

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]