PHP в деталях



         

Объектно-ориентированное программирование, классы


DL
10.12.2000

Мой путь к пониманию объектов шел слишком долго. Надо сказать, что закончился он чрезвычайно неожиданно - я прочел... мануал PHP 4. Где можно найти толковое описание, только не там, казалось бы... Правда, уже до этого я кое-что знал ("...объект, сочетающий в себе как совокупность данных, так и действий над ними." (с) Епанешников, "Программирование в среде Turbo Pascal 7.0"), но это уже детали.

Что же такое класс и объект. Сперва об объекте. Определение "...сочетающий в себе как совокупность данных, так и действий над ними" - вполне подходящее. Если говорить "приземленно", то объект в PHP - это переменная особого типа. В ней содержатся специально объявленные под-переменные и функции этого объекта (то, что объект содержит переменные и функции, в научной литературе называется инкапсуляцией). Функция is_object на эту переменную выдает true:

if (is_object($objectname)) {

do_something();

  };

Обращение к под-переменной объекта производится следующим образом (название, конечно же неправильное, правильно "свойство объекта").

$objectname->property

print ($objectname->property);

Вызов функции (метода) объекта:

$objectname->format_output($format);

Конечно же неудобно писать имя объекта и "стрелочку" ("->") перед нужной переменной, но это только поначалу. Зато потом можно сэкономить большой объем программного кода (и избежать лишней головной боли).

Теперь что такое класс. Класс - значит класс объектов. В PHP-скриптах описывается не объект. Сначала описывается класс объектов, и затем можно создавать сколько угодно объектов этого класса.

<?

class Public_Transport {

  var $capacity = 0;

  var $passengers = 0;

  var $stop = array;

  var $current_stop = 0;

  var $vehicle = "unknown";

  function say_stop () {

    echo $this->stop[$this->current_stop];




Содержание  Назад  Вперед