![]() | ![]() | ||
Очень рекомендуем посетить сайт автора статьи: www.apasov.com PHP так же как и большинство современных языков программирования высокого уровня, таких как С, Паскаль, Java и т.д. является объектно-ориентированным. В этой статье мы как раз и узнаем что же такое эти объекты на которые он ориентирован и в чем причина и польза (или вред) такой ориентации. Я думаю, что эту статью интересно будет прочитать и тем, кто изучает не PHP, а другие языки, потому что в них во всех понятия классов и объектов одинаковы, разный только синтаксис. Мы раскроем нашу тему на примере небольшого скрипта, который называется "Штирлиц и Мюллер". У Штирлица и Мюллера на двоих имеется 0.7 литра шнапса и 0.5 литра водки. Но Мюллер является немецким офицером и может пить только шнапс, тогда как Штирлиц помимо того, что он немецкий офицер, одновременно ещё и является советским разведчиком майором Исаевым, поэтому способен пить не только шнапс, но и водку. С каждым нажатием кнопки один из них выпивает 100 грамм того или иного напитка. А теперь зайдите сюда и сделайте так, чтобы из имеющихся 1.2 литра спиртного Штирлиц выпил как минимум 0.9 литра. Но не забывайте и про Мюллера. А теперь посмотрим как работает этот скрипт. Вот его основной код: <? Одна из прелестей PHP в том, что код можно писать не только на английском, но и на многих других языках, в том числе и на русском, что вы и видите в данном примере. ( Имена переменных, функций, классов, объектов и т.д. в PHP могут состоять не только из латинских букв, но также могут содержать знак подчеркивания _, цифры (но не должны начинаться с цифр) и любие символы из расширенного набора ASCII ( ASCII-коды от 127 до 255 (0x7f-0xff) ), куда входят и хорошо нам знакомые значки кириллицы ) Итак, начнём с начала. <? - это начало любого PHP-кода, а ?> - его конец. Всё, что находится между этими значками, сервер обрабатывает как программу на PHP, а все что за ними - как простой HTML. Далее идёт функция заголовок(). Функция - это то же, что процедура или подпрограмма - кусок кода, который выполняет какое-то действие. Функции используются для того, чтобы не писать один и тот же код несколько раз, а, написав его единожды, вызывать его потом сколько угодно раз всего одним словом - названием функции. В этом скрипте несколько функций: <? Одна из них - встроенная ( это - extract() ), а остальные - написанные пользователем (User-defined functions). Встроенные функции написаны на Си и находятся в самом коде PHP, подробное описание каждой из них вы можете прочитать в PHP Manual. А для того чтобы заработали user-defined функции их надо сначала описать (обычно в конце программы или в отдельном файле). Делается это так: function заголовок() { echo - это встроенная функция. Она выводит текст который стоит после неё в кавычках. Если в самом выводимом тексте есть кавычки то перед каждой из них надо кинуть вот такую палочку - \ Функция заголовок() выводит на экран HTML-заголовки - название страницы и мета-таг указывающий кодировку. Кстати, если вы видите на русскоязычных страницах непонятную абракадабру вместо великого и могучего, и вам приходится самостоятельно выставлять кодировку в браузере - это означает, что вебмастер забыл вставить именно этот мета-таг. Не повторяйте чужих ошибок и всегда помните об этом, когда пишете русскоязычные страницы. А вот теперь мы и подошли к самому интересному, к нашей основной теме "Классы и Объекты". Если перевести этот код $Мюллер = new Немецкий_Офицер; с программного языка на человеческий, то он будет означать следующее: $Мюллер - новый объект класса Немецкий_Офицер Класс - это описание возможностей (набора функций) и переменных, которыми обладает любой объект данного класса. Польза та же, что и от функций - не нужно писать много раз одно и то же. А следовательно увеличивается скорость написания программ, облегчается понимание того, как они работают, и где могут крыться ошибки. Описав класс один раз, можно создавать сколько угодно объектов этого класса и все они будут обладать одинаковыми возможностями. Так что мы с легкостью можем написать, к примеру $Борман = new Немецкий_Офицер; Итак, мы установили, что класс - это не что иное, как набор функций и переменных, с которыми работают эти функции. Как и функции, классы обычно описываются в конце программы или в отдельном файле. Посмотрим, какими же функциями обладает каждый Немецкий_Офицер: class Немецкий_Офицер { Как видим, он может рассказать нам о своих Желаниях(), Выпить_Шнапса() и поведать о своем Самочувствии() после выпитого. В этом классе есть ещё одна функция - Немецкий_Офицер(). Она особенная и отличается от всех других, тем, что её название в точности совпадает с названием самого класса. Такая функция называется конструктор. Слово "конструктор" в английском языке значит совсем не то, что в русском, а обозначает того, кто что-то конструирует. Конструктор - это функция которая выполняется автоматически, когда создаётся (конструируется) новый объект данного класса. То есть когда рождается каждый новый Немецкий_Офицер он сразу начинает испытывать естественную для каждого истинного Немецкого_Офицера Острую_Необходимость Выпить_Шнапса. А теперь посмотрим, что может Советский_Разведчик
|
|||
![]() | ![]() |
![]() |
Контакты |
![]() |
Редакция: |
![]() | ![]() | |||||
![]() | ![]() |