| |
ент времени. Это сделано именно из соображений упрощения от-
ладки сценариев. И все же, если нефатальное предупреждение было сгенерировано в
момент обработки блока, который по каким-то причинам не входит в шаблон страни-
цы, оно останется незамеченным программистом. Впрочем, наверное, в этом нет ни-
чего страшного: раз блок не выводится, значит, нам все равно, правильно он
отрабо-
тан или нет….
Часть V. Приемы программирования на PHP 452
Глава 31
Объектно-ориентированное
программирование на PHP
В последние 10 лет идея объектно-ориентированного программирования (ООП),
кардинально новая идеология написания программ, все более занимает умы про-
граммистов. И это неудивительно. В самом деле, сейчас происходит (а точнее, уже
произошло, особенно после выхода стандарта на С++ от 98-го года и изобретения
таких языков, как Java и Delphi) примерно то же, что произошло в начале 80-х
годов
при появлении идеи структурного программирования.
Объектно-ориентированные программы более просты и мобильны, их легче модифи-
цировать и сопровождать, чем их "традиционных" собратьев. Кроме того, похоже,
сама идея объектной ориентированности при грамотном ее использовании позволяет
программе быть даже более защищенной от различного рода ошибок, чем это заду-
мывал программист в момент работы над ней. Однако ничего не дается даром: сами
идеи ООП довольно трудны для восприятия "с нуля", поэтому до сих пор очень
боль-
шое количество программ (различные системы Unix, Apache, Perl, да и сам PHP)
все
еще пишутся на старом добром "объектно-неориентированном" Си. Что ж, очень
жаль. Ощущение жалости усиливается, если посмотреть на исходные тексты этих
программ, поражающие своей многословностью...
PHP, как и большинство современных языков, обеспечивает некоторую поддержку
ООП. Конечно, эта поддержка далеко не полна: например, нет множественного на-
следования и сокрытия данных, довольно примитивен и сам механизм наследования
и полиморфизма. Правда, в четвертой версии PHP наметился кое-какой прогресс:
появились ссылочные переменные, но их использование все еще несколько затрудни-
тельно из-за неудобного синтаксиса. Однако это все же лучше, чем ничего.
В этой главе я кратко изложу основные идеи ООП, подкрепляя их иллюстрациями
программ на PHP. Конечно, данная глава ни в коей мере не претендует на звание
учебника по ООП. Интересующимся читателям рекомендую изучить любой из мону-
ментальных трудов Бьерна Страуструпа, изобретателя языка C++.
Классы и объекты
Ключевым понятием ООП является класс. Класс — это просто тип переменной. Ну,
не совсем просто... На самом деле переменная класса (далее будем ее называть
объ-
Часть V. Приемы программирования на PHP 454
ектом класса) является в некотором смысле автономной сущностью. Обычно такой
объект имеет набор свойств и операций (или методов), которые могут быть с ним
проведены. Например, мы можем рассматривать тип int как класс. Тогда перемен-
ная этого "класса" будет обладать одним свойством (ее целым значением), а также
набором методов (сложение, вычитание, инкремент и т. д.).
В языке C++ мы могли бы, действительно, объявить тип int именно таким образом.
Однако в PHP дело обстоит немного хуже: мы не имеем права переопределять стан-
дартные операции
|
|