Обучение HTML, Excel, Word. Как сделать свой сайт бесплатно

Microsoft Office

Сайтостроение

HTML

Программинг

Компьютер

Графика

Разное

· Основы Word
· Основы Excel
· Основы VBA
· Основы OpenOffice
· Как сделать сайт
· Свой сайт от А до Я
· Оптимизация сайта
· Шаблоны для сайта
· Обзор CMS
· Основы HTML
· HTML-теги
· Основы CSS
· Основы PHP
· Основы JavaScript
· Софт для сайта
· Что внутри ПК
· ПК для чайников
· Все о BIOS
· Web-графика
· САПР: AutoCAD
· Статьи
· Форум
· SEO-новости
Главная страница Карта сайта
Учебник PHP
Основы SQL
  1. Введение
  2. Инструменты
  3. Первый шаг
  4. Структура языка
  5. Массивы
  6. Глобальные массивы
  7. Cookies
  8. Сессии
  9. Загрузка файлов
  10. Работа с файлами
  11. Работа с базами данных
  12. Работа в сети
  13. Отправка почты
  14. Безопасность
  15. Автоматизация
  16. Регулярные выражения в PHP
  17. Интеграция
 



PHP: Классы

Автор: Артемьев Сергей Игоревич
ICQ: 438856621
email: _spin_@bk.ru

Класс - это одно из ключевых понятий так называемого "объектно-ориентированного программирования". Тема ООП достаточно сложна для понимания, но её освоение даст вам в руки мощнейший инструмент для создания и совершентвования своих скриптов. Мы не будем вдаваться в дебри теории, а рассмотрим только самое необходимое.


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


Для того, чтобы воспользоваться классом, необходимо создать его экземпляр. Экземпляр класса - это реальный объект, для которого выделена память и установлены значения всех свойств. Для класса "человек" экземпляром будет конкретный индивид со своим цветом волос, ростом, весом и номером паспорта.


Одно из преимуществ объектного подхода при разработке систем - возможность скрытия особенностей реализации отдельных методов. Например, класс "человек" реализует метод "ходить", который выполняет перемещение экземпляра куда-либо. При этом нам совершенно не важно, как будет произведено перемещение: на ногах, на костылях или стоя на руках. Главное - мы знаем, что после вызова метода "ходить" экземпляр переместится куда скажем.


Рассмотрим другой пример - графические фигуры. Например:

<?php
    // объявляем класс с именем Rectangle
    class Rectangle
    {
        // свойство "ширина"
        private $width;
        // свойство "высота"
        private $height;

        // конструктор класса
        public function __construct($x, $y)
        {
            $this->width = $x;
            $this->height = $y;
        }

        // метод "посчитать площадь"
        public function Square()
        {
            return $this->width * $this->height;
        }
    }

    // создаём массив прямоугольников
    $rects = array();
    // заполняем массив экземплярами
    $rects['1'] = new Rectangle(100, 100);
    $rects['2'] = new Rectangle(20, 200);
    $rects['3'] = new Rectangle(300, 50);

    // выводим площадь каждого экземпляра
    foreach($rects as $key => $rect)
    {
        echo 'Площадь ' . $key .
                ' прямоугольника: ' . $rect->Square() .
                ">br />\n";
    }
?>

Объявление класса начинается с ключевого слова "class", после которого записывается имя класса. Тело класса (все свойства и методы) ограничиваются фигурными скобками "{}". Объявление любого свойства или метода начинается с ключевых слов public или private, определяющих область видимости свойства или метода. Элементы, помеченные "public" (публичные) видны извне класса, а помеченные "private" (частные) можно использовать только внутри этого же класса. Например:

<?php
    // создаём экземпляр класса
    $rect = new Rectangle(100, 100);
    // вызов публичного метода
    echo $rect->Square();
    // попытка ображения к закрытому
    // свойству вызовет ошибку
    echo $rect->width;
?>

Свойства класса объявляются как обычные переменные (см. переменные $width и $height), а методы класса - как обычные функции. Основное отличие в том, что внутри метода непосредственно доступны все свойства и методы данного класса, т.е. нет необходимости пользоваться конструкцией global. Для указания того, что вы хотите обратиться к методу или свойству текущего экземпляра надо воспользоваться ссылкой $this, которая автоматически доступна внутри экземпляра любого класса (см. код метода Square() ).

Экземпляр класса создаётся при помощи ключевого слова "new" и имени класса. Конструкцию

<?php
    $rect = new Rectangle(100, 100);
?>

следует читать как "Создать экземпляр класса Rectangle с высотой 100, шириной 100, ссылку на экземпляр поместить в переменную $rect". В момент создания класса автоматически выполняется служебный метод, т.н. "конструктор". Он имеет фиксированное имя "__construct()", а тип и количество параметров определяет разработчик. Основное назначение конструктора - инициализация внутренних переменных и свойств класса. Единственное отличие конструктора от обычного метода - конструктор не может возвращать значение. Пример:

<?php
    // объявили класс с конструктором
    class DemoClass
    {
        private $a;
        private $b;
        private $c;
        private $d;

        public function __construct($a, $b, $c)
        {
            $this->a = $a;
            $this->b = $b;
            $this->c = $c;
            $this->d = 'my secret string';
        }

        public function getSecret()
        {
            return $this->d;
        }
    }

    // создаём экземпляр класса
    $demo = new DemoClass('a', 'b', 'c');
    // выводим секретную строку
    echo $demo->getSecret();
    // строка 'my secret string' выводится,
    // хотя мы её явно не инициализировали
?>

Экземпляры классов удаляются так же, как все переменные PHP - посредством вызова unset(). При удалении экземпляра автоматически вызывается его деструктор. Это служебный метод без параметров с именем "__destruct()", в котором программист может явно закрыть и освободить все ресурсы, используемые экземпляром. По умолчанию, все ресурсы гарантированно освобождаются по окончании выполнения скрипта.

ООП - интересная область PHP, но изучать её в отрыве от практики очень сложно. Поэтому сейчас мы не будем вдаваться в тонкости и подробности, а рассмотрим их позже при решении практических задач.

top




 




Спасибо, что заглянули на сайт. Надеюсь, Вам понравилось. Заходите еще. Здесь всегда рады вам :)
При копировании материалов, размещенных на сайте, ссылка на первоисточник обязательна.
Если понравился этот сайт..

© 2005-2012
Юрий Кордык All Rights Reserved

 

E-mail:
admin@on-line-teaching.com