PHP в деталях


         

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


    if ($this->current_stop==sizeof($this->stop)-1)

      echo ". Конечная.";

    else

      echo " следующая - ", $this->stop[$this->current_stop+1];

    }

  function stop () {

    $this->passengers += intval(rand((-1*$this->passengers),100));

    if ($this->passengers > $this->capacity) {

      echo "Освобождаем двери!";

      $this->passengers = $this->capacity;

      };

    }

  function go () {

    $this->current_stop++;

    }

  }

?>

ВНИМАНИЕ! Закрывающая скобка класса должна быть без точки с запятой (""), как и все описания функций внутри описания класса.

Программа, работающая с классом Общественный_Транспорт будет выглядеть так:

<?

$bus = new Public_Transport;

$bus->capacity = 200;

$bus->vehicle = "Лиаз-767";

$bus->stop = array ("Торговый центр", "Поликлиника", "Институт теплофизики", "Вычислительный центр", "Институт ядерной физики", "Институт гидродинамики", "Морской проспект", "Дом ученых", "ул. Жемчужная", "Цветной проезд");

while ($bus->current_stop < sizeof($bus->stop)) {

  $bus->say_stop();

  $bus->stop();

  $bus->go();

  };

?>

В этом примере запущен только один автобус, а можно и два, и три, и сколько угодно. Понятно, что это можно повторить и без помощи объектов, но это сложнее, и полученный код не так легко читается, как с объектами, тем более, когда "предметов" несколько.

Объект и его свойства являются обычными переменными. Например, можно работать с динамическими именами переменных:




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