- •Область применения
- •История php
- •2. Змінні. Константи. Вбудовані константи. Елементи структурного програмування (розгалуження, організація циклів, передача управління) Основы
- •Предопределенные переменные
- •Область видимости переменной
- •Ключевое слово global
- •Использование статических (static) переменных
- •Ссылки с глобальными (global) и статическими (static) переменными
- •Переменные переменных
- •Переменные извне php html-формы (get и post)
- •Имена переменных кнопки-изображения
- •Точки в именах приходящих переменных
- •Определение типов переменных
- •Константы Содержание
- •Синтаксис
- •"Волшебные" константы
- •Выражения
- •3. Використання масивів у php. Способи створення масиву. Індексні масиви.Асоціативні масиви Массивы
- •Синтаксис Определение при помощи array()
- •Создание/модификация с помощью синтаксиса квадратных скобок
- •Полезные функции
- •Что можно и нельзя делать с массивами
- •Так что же в этом плохого?
- •Преобразование в массив
- •Сравнение
- •Примеры
- •4. Функції в php. Синтаксис опису функцій. Порядок визначення і виклику. Способи
- •Функции, определяемые пользователем
- •Аргументы функции
- •Передача аргументов по ссылке
- •Значения аргументов по умолчанию
- •Списки аргументов переменной длины
- •Возврат значений
- •Обращение к функциям через переменные
- •Анонимные функции
- •5. Схема роботи Web-додатку, архітектура клієнт-сервер. Протокол http. Загальна структура http-повідомлень (запит, відповідь)
- •Технические особенности[править | править вики-текст]
- •Архитектура веб-приложений[править | править вики-текст]
- •Программное обеспечение[править | править вики-текст]
- •Клиенты[править | править вики-текст]
- •Исходные серверы[править | править вики-текст]
- •Прокси-серверы[править | править вики-текст]
- •История развития[править | править вики-текст]
- •Структура протокола[править | править вики-текст]
- •Стартовая строка[править | править вики-текст]
- •Методы[править | править вики-текст]
- •Options[править | править вики-текст]
- •Get[править | править вики-текст]
- •Head[править | править вики-текст]
- •Post[править | править вики-текст]
- •Put[править | править вики-текст]
- •1Xx Informational («Информационный»)
- •2Xx Success («Успех»)
- •3Xx Redirection («Перенаправление»)
- •4Xx Client Error («Ошибка клиента»)
- •5Xx Server Error («Ошибка сервера»)
- •Заголовки[править | править вики-текст]
- •Тело сообщения[править | править вики-текст]
- •Основные механизмы протокола[править | править вики-текст] Частичные get[править | править вики-текст]
- •Условные get[править | править вики-текст]
- •Согласование содержимого[править | править вики-текст]
- •Управляемое сервером[править | править вики-текст]
- •Управляемое клиентом[править | править вики-текст]
- •Прозрачное согласование[править | править вики-текст]
- •Множественное содержимое[править | править вики-текст]
- •Особенности протокола[править | править вики-текст]
- •6. Обробка даних html-форм. Способи передачі параметрів сценарію php. Звернення до параметру, переданому з форми Обработка данных из html-форм при помощи php
- •Способы передачи параметров сценарию
- •Передача параметров с помощью html-форм
- •Назначение[править | править вики-текст]
- •Понятие[править | править вики-текст]
- •История[править | править вики-текст]
- •Заблуждения[править | править вики-текст]
- •Работа куки[править | править вики-текст] Установка куки[править | править вики-текст]
- •Атрибуты куки[править | править вики-текст]
- •Условия истечения срока хранения[править | править вики-текст]
- •Аутентификация[править | править вики-текст]
- •Настройка браузера[править | править вики-текст]
- •Приватность и сторонние куки[править | править вики-текст]
- •Недостатки куки[править | править вики-текст]
- •Неточная идентификация[править | править вики-текст]
- •Кража куки[править | править вики-текст]
- •Подмена куки[править | править вики-текст]
- •Межсайтовые куки[править | править вики-текст]
- •Нестабильность между клиентом и сервером[править | править вики-текст]
- •Срок действия куки[править | править вики-текст]
- •Альтернативы куки[править | править вики-текст]
- •Url (строка запроса)[править | править вики-текст]
- •Скрытые поля формы[править | править вики-текст]
- •Http-аутентификация[править | править вики-текст]
- •Сохранение на клиентской стороне[править | править вики-текст]
- •Куки и сессии http
- •Обеспечение безопасности передачи данных http
- •Назначение[править | править вики-текст]
- •Понятие[править | править вики-текст]
- •История[править | править вики-текст]
- •Заблуждения[править | править вики-текст]
- •Работа куки[править | править вики-текст] Установка куки[править | править вики-текст]
- •Атрибуты куки[править | править вики-текст]
- •Условия истечения срока хранения[править | править вики-текст]
- •Аутентификация[править | править вики-текст]
- •Настройка браузера[править | править вики-текст]
- •Приватность и сторонние куки[править | править вики-текст]
- •Недостатки куки[править | править вики-текст]
- •Неточная идентификация[править | править вики-текст]
- •Кража куки[править | править вики-текст]
- •Подмена куки[править | править вики-текст]
- •Межсайтовые куки[править | править вики-текст]
- •Нестабильность между клиентом и сервером[править | править вики-текст]
- •Срок действия куки[править | править вики-текст]
- •Альтернативы куки[править | править вики-текст]
- •Url (строка запроса)[править | править вики-текст]
- •Скрытые поля формы[править | править вики-текст]
- •Http-аутентификация[править | править вики-текст]
- •Сохранение на клиентской стороне[править | править вики-текст]
- •8. Сесії (сеанси) php, основна ідея використання сесій, початок сеансу, завершення сеансу. Ідентифікатор сесії. Змінні сесії
- •Открытие сессии
- •Регистрация переменных сессии
- •Закрытие сессии
- •Пример простой сессии
- •Передача идентификатора сессии
- •9. Багатофайлові сценарії php. Включення файлів, принцип роботи include, include_once, require, require_once
- •10. Створення класу, синтаксис опису. Створення об'єкта Классы и объекты в php
- •11. Успадкування, модель одиночного наслідування. Синтаксис опису класу-нащадка Наследование (программирование)
- •Типы наследования[править | править вики-текст] Простое наследование[править | править вики-текст]
- •Множественное наследование[править | править вики-текст]
- •Единый базовый класс[править | править вики-текст]
- •Наследование в языках программирования[править | править вики-текст]
- •Delphi (Object Pascal)[править | править вики-текст]
- •Python[править | править вики-текст]
- •Php[править | править вики-текст]
- •Objective-c[править | править вики-текст]
- •Java[править | править вики-текст]
- •C#[править | править вики-текст]
- •Ruby[править | править вики-текст]
- •JavaScript[править | править вики-текст]
- •Конструкторы и деструкторы[править | править вики-текст]
- •12. Абстрактний метод, абстрактний клас. Інтерфейс и, призначення, синтаксис опису, реалізація.
- •Содержание
- •Примеры[править | править вики-текст]
- •C#[править | править вики-текст]
- •Описание и использование интерфейсов[править | править вики-текст]
- •Интерфейсы и абстрактные классы[править | править вики-текст]
- •История[править | править вики-текст]
- •Назначение[править | править вики-текст]
- •Концепция[править | править вики-текст]
- •Наиболее частые ошибки[править | править вики-текст]
- •Строковые типы
- •Бинарные данные
- •Целые числа
- •Дробные числа
- •Типы даты и времени
- •Команды sql
- •Типы полей базы данных
- •15. Функції php управління з'єднанням з MySql. Функції php побудови і виконання запитів на сервері MySql. Функції php обробки результату запиту Функции php для работы с MySql
- •16. Область використання .Htaccess ответ 1: Защита сайта с помощью .Htaccess и .Htpasswd
- •Ответ 2:Защита сайта с помощью .Htaccess и .Htpasswd
- •Базовая аутентификация
- •Замечание
- •Замечание
- •Замечание
- •Замечание
- •Создание файла с паролями .Htpasswd
- •Замечание
- •Замечание
- •Защита файлов .Htpasswd
- •Создание файла .Htaccess
- •Пример файла .Htaccess
- •Внимание!
- •Файлы групп
Единый базовый класс[править | править вики-текст]
В ряде языков программирования все классы явно или неявно наследуются от некого базового класса. Smalltalk был одним из первых языков, в которых использовалась эта концепция. К таким языкам относятся Objective-C (NSObject), Perl (UNIVERSAL), Eiffel (ANY), Java (java.lang.Object), C#(System.Object), Delphi (TObject).
Наследование в языках программирования[править | править вики-текст]
C++[править | править вики-текст]
Наследование в C++:
class A{ //базовый класс
};
class B : public A{ //public наследование
};
class C : protected A{ //protected наследование
};
class Z : private A{ //private наследование
};
В C++ существует три типа наследования: public, protected, private. Спецификаторы доступа членов базового класса меняются в потомках следующим образом:
Если класс объявлен как базовый для другого класса со спецификатором доступа public, тогда public члены базового класса доступны как public члены производного класса, protected члены базового класса доступны как protected члены производного класса.
Если класс объявлен как базовый для другого класса со спецификатором доступа protected, тогда public и protected члены базового класса доступны как protected члены производного класса.
Если класс объявлен как базовый для другого класса со спецификатором доступа private, тогда public и protected члены базового класса доступны как private члены производного класса.
Одним из основных преимуществ public-наследования является то, что указатель на классы-наследники может быть неявно преобразован в указатель на базовый класс, то есть для примера выше можно написать:
A* a = new B();
Эта интересная особенность открывает возможность динамической идентификации типа (RTTI).
Delphi (Object Pascal)[править | править вики-текст]
Для использования механизма наследования в Delphi необходимо в объявлении класса справа от слова class указать класс предок:
Предок:
TAncestor = class
private
protected
public
// Виртуальная процедура
procedure VirtualProcedure; virtual; abstract;
procedure StaticProcedure;
end;
Наследник:
TDescendant = class(TAncestor)
private
protected
public
// Перекрытие виртуальной процедуры
procedure VirtualProcedure; override;
procedure StaticProcedure;
end;
Абсолютно все классы в Delphi являются потомками класса TObject. Если класс-предок не указан, то подразумевается, что новый класс является прямым потомком класса TObject.
Множественное наследование в Delphi частично поддерживается за счёт использования классов-помощников (Сlass Helpers).
Python[править | править вики-текст]
Python поддерживает как одиночное, так и множественное наследование. При доступе к атрибуту просмотр производных классов происходит в порядке разрешения метода (англ. method resolution order, MRO)[1].
class Ancestor1(object): # Предок 1
def m1(self): pass
class Ancestor2(object): # Предок 2
def m1(self): pass
class Descendant(Ancestor1, Ancestor2): # Наследник
def m2(self): pass
d = Descendant() # инстанциация
print d.__class__.__mro__ # порядок разрешения метода:
(<class '__main__.Descendant'>, <class '__main__.Ancestor1'>, <class '__main__.Ancestor2'>, <type 'object'>)
С версии Python 2.2 в языке сосуществуют «классические» классы и «новые» классы. Последние являются наследниками object. «Классические» классы будут поддерживаться вплоть до версии 2.6, но удалены из языка в Python версии 3.0.
Множественное наследование применяется в Python, в частности, для введения в основной класс классов-примесей (англ. mix-in).
