Помимо инициализации объекта, приводящей его в состояние готовности, важной особенностью конструктора является то, что он не возвращает явно значение. Все конструкторы возвращают вновь созданную переменную, которую можно использовать в программе. Поэтому возвращать значение в конструкторе класса недопустимо. Подробнее о применении объектов в программах мы поговорим в следующем разделе.
Правильное проектирование объектов и их конструкторов - проблема, с которой часто встречаются многие разработчики. Когда конструкция класса такова, что программисту приходится устанавливать члены объекта, чтобы использовать его методы, или класс вынуждает программиста придерживаться специального порядка при вызове методов объекта, получается запутанный и не вполне понятный код. С помощью ООП всего этого можно избежать. Если класс не обращается к возможностям конструктора для инициализации его главных частей, это означает, что он плохо спроектирован. Стремитесь избегать таких
Хорошо спроектированный класс устраняет массу проблем с программирова нием, отладкой и сопровождением.
Взглянем на общий синтаксис класса в РНР, иллюстрирующий применение трех типов компонентов:
class ClassName [extends ParentclassName] {
var $member1; var $member2;
var $memberN;
// Конструктор function ClassNameO
function raethod1() function method2()
function methodNQ
>
Как видно, класс состоит лишь из ряда определяемых членов (переменных) и методов (функций). Члены могут относиться к элементарным типам данных, таким как целые числа или строки, либо к более сложным, таким как массивы или другие объекты. Поскольку РНР не требует задания типа, можно просто указать имена переменных в начале описания класса, как это сделано выше.
В РНР допускается динамическое создание переменных в функциях, при этом они работают нормальным образом. Однако такая практика не одобряется, потому что когда другие программисты рассматривают ваш класс, они должны сразу видеть, какие члены в нем есть, не заглядывая в реализацию функций.
Методы представляют собой просто сервисы, которые класс предоставляет своим клиентам. Клиентами могут быть другие программы, другие объекты, сценарий и т. д.
Напишем код для класса Определение нашего класса начнем с ключевого слова class во второй строке. Хороший стиль программирования рекомендует выделять первые буквы имен классов как заглавные, чтобы отличать их от переменных и функций.
Программисты долгие годы придерживаются такой практики в других языках. Легко отличить конструктор от других методов класса. Кроме того, полезно давать файлам имена, совпадающие с именем класса, например Car, php. В файле должен быть только один класс. Если есть несколько взаимосвязанных классов, например набор классов основных типов данных, следует поместить их в подкаталог основного приложения. При работе над большими проектами это просто необходимо.