
- •Установка и настройка по
- •Установка Apache 1.3.29 под Windows xp
- •Установка php 4.3.4 под Windows
- •Дистрибутив Денвер
- •Первая php-программа
- •Синтаксис
- •Переменные, константы и операторы
- •Переменные
- •Константы
- •Типы данных
- •Тип boolean (булев или логический тип)
- •Тип integer (целые)
- •Тип float (числа с плавающей точкой)
- •Тип string (строки)
- •Одинарные кавычки
- •Двойные кавычки
- •Heredoc
- •Тип array (массив)
- •Определение при помощи array()
- •Определение с помощью синтаксиса квадратных скобок
- •Управляющие конструкции Условные операторы Оператор if
- •Оператор else
- •Оператор elseif
- •Do... While
- •Foreach
- •Операторы передачи управления
- •Continue
- •Операторы включения
- •Include
- •Require
- •Обработка запросов с помощью php
- •Протокол http и способы передачи данных на сервер
- •Форма запроса клиента
- •Использование html-форм для передачи данных на сервер
- •Для метода get
- •Для метода post
- •Обработка запросов с помощью php
- •Пример обработки запроса с помощью php
- •Заключение
- •Функции в php
- •Аргументы функций
- •Списки аргументов переменной длины
- •Возвращаемые значения
- •Возвращение ссылки
- •Переменные функции
- •Объекты и классы в php
- •Инициализация переменных
- •Объекты
- •Наследование extends
- •Конструкторы
- •Оператор ::
- •Оператор parent
- •Объектная модель php5
- •Решение задачи
- •Заключение
- •Функция in_array
- •Функция array_search
- •Функция array_keys
- •Функция array_unique
- •Сортировка массива по ключам
- •Сортировка с помощью функции, заданной пользователем
- •Работа со строками
- •Выделение подстроки Функция strstr
- •Функция substr
- •Функция substr_replace
- •Проверка существования файла
- •Функция file_exists
- •Функция is_writable
- •Функция is_readable
- •Базы данных и субд. Введение в sql
- •Взаимодействие php и MySql
- •Выбор базы данных
- •Получение списка полей таблицы
- •Отображение списка полей в html-форму
- •Авторизация доступа с помощью сессий
- •Регулярные выражения
- •Взаимодействие php и xml
- •Обход дерева объектов
- •Добавление новых элементов в xml-документ
- •Заключение
- •Использование шаблонов в php
Объекты и классы в php
Понятия класса и объекта. Определение и использование классов. Понятие расширения класса. Конструкторы. Оператор :: Базовый класс и функция parent. Пример – автоматическая генерация по желанию пользователя представителей классов статей или личностей, а также их отображения на странице браузера. |
|
|
|
В этой лекции мы рассмотрим объектную модель, предлагаемую языком PHP. Будут представлены понятия классаиобъекта, способы их задания и использования, способы расширенияклассов,конструкторыклассов, механизмынаследованияи т.п. Кроме того, мы затронем некоторые нововведения, касающиеся объектной модели, появившиеся в PHP5. В качестве примера решим задачу автоматической генерации по желанию пользователя представителей классовстатей или личностей, а также их отображения на странице браузера. Классы и объекты Начнем с основных понятий объектно-ориентированного программирования – классаиобъекта. Существует множество определений этих понятий. Мы дадим следующее:объект– это структурированная переменная, содержащая всю информацию о некотором физическом предмете или реализуемом в программе понятии,класс– это описание такихобъектови действий, которые можно с ними выполнять. В PHP классопределяется с помощью следующего синтаксиса: class Имя_класса{ var $имя_свойства; /*список свойств*/ function имя_метода( ){ /* определение метода */ } /*список методов*/ } Имена свойствобъектовклассаобъявляются с помощью ключевого словаvar,методы, применимые кобъектамиданногокласса, описываются функциями. Внутри определенияклассаможно использовать ключевое словоthisдля обращения к текущему представителюкласса. Например, нам нужно создать класс, описывающий категорию статей. У каждой статьи имеются такиесвойства, как название, автор и краткое содержание. Какие действия мы хотим совершать со статьями? Возможно, нам понадобится задавать значения перечисленнымсвойствамистатьи, отображать статью в браузере. Тогда определение этогоклассаможет выглядеть следующим образом: <? class Articles { // Создаем класс Статей var $title; var $author; var $description; // метод, который присваивает значения // атрибутам класса function make_article($t, $a, $d){ $this->title = $t; $this->author = $a; $this->description = $d; } //метод для отображения экземпляров класса function show_article(){ $art = $this->title . "<br>" . $this->description . "<br>Автор: " . $this->author; echo $art; } } ?> Итак, для описания физических объектовтипа «статья» мы создаликлассс именемArticles, состоящий из трех переменных, содержащих характеристики статьи, и двух функций для создания конкретной статьи и для ее отображения. Как известно, работая с PHP, можно периодически переключаться в режим HTML. В этом случае программа состоит из нескольких кусков (блоков) кода. Определение классанельзя разносить по разным блокам php-кода и тем более по разным файлам. То есть если написать: <?php class Articles { // Начало описания класса var $title; ?> <?php // продолжение описания класса function show_article(){ // содержание метода } } // конец описания класса ?> то программа не будет работать корректно. Несколько замечаний по поводу имен классов. Имяклассадолжно удовлетворять правилам именованияобъектовв языке PHP, но есть ряд имен, которые зарезервированы разработчиками для своих целей. В первую очередь это имена, начинающиеся с символа подчеркивания «_». Для созданияклассови функций нельзя использовать такие имена. Кроме того, зарезервировано имяstdClass, поскольку оно используется внутри движка PHP. |