Оглавление

Создание базовых классов

Хотя мы и называем этот стиль объектно-ориентированным программированием (objectoriented programming), большинство всех задач в программировании связано с разработкой классов. Класс (class) можно представить себе как детальный проект объекта, определяющий все действия, которые могут быть выполнены над ним. Поэтому определения классов содержат переменные, функции (называемые методами) и даже константы, характерные только для данного класса или его экземпляров. В PHP 4 базовый класс определялся так, как показано в листинге 1.

 


class myPHP4Class {
    var $my_variable;
    function my_method( $param ) {
        echo "Вызван метод my_method($param)!\n";
        echo "Значение внутренней переменной: ";
        echo "{$this->my_variable}\n";
    }
}

 

После того как класс будет определен, можно создать экземпляр (instance) класса. Экземпляром класса является объект, представляющий рабочую копию предварительно определенного класса. Чтобы создать экземпляр класса myPHP4Class, используется оператор new:

 


include_once ("myPHP4Class_def.php");
$myinstance = new myPHP4Class();
$anotherinstance = new myPHP4Class();

 

Здесь переменные $myinstance и $anotherinstance представляют объекты, имеющие тип myPHP4Class. Хотя они и были созданы на основе одного и того же определения класса, они совершенно не зависят друг от друга.

После того как будет создан экземпляр класса, свойства и методы, определенные в исходном классе, будут доступны для экземпляра с помощью операции ->. Продолжая предыдущий пример, в листинге 2 устанавливается свойство $my_variable каждого экземпляра.

 


$myinstance = new myPHP4Class();
$anotherinstance = new myPHP4class();
$myinstance->my_variable = 10;
$anotherinstance->my_variable = 20;
$myinstance->my_method("MyParam");

 

Во время выполнения свойству $my_variable объекта $myinstance будет присвоено значение 10, а свойству $my_variable объекта $anotherinstance — значение 20. Поскольку сценарий вызывает метод my_method() класса, будет сгенерирован также следующий вывод:

Вызван метод my_method(MyParam)!
Значение внутренней переменной: 10

 

Примечание: $this — это особая переменная внутри класса, представляющая экземпляр самого объекта. Она используется для доступа к методам и свойствам внутри объекта.

Меню >>  
Комментарии принадлежат их авторам. Мы не несем ответственности за их содержание.
Отправитель Нити