- •Романчик в.С.
- •Минск, бгу, 2011
- •Введение в Интернет Коротко об истории Интернет
- •Как работает Интернет?
- •Система адресации в Интернет
- •Способы подключения к сети Интернет
- •Сервисы Интернет
- •Электронная почта
- •Адресация электронной почты
- •Передача файлов по ftp
- •Всемирная паутина www
- •Задания по теме “Введение в Интернет”
- •Общие задания для лабораторной работы #1
- •Глава 1. Протоколы Интернет Понятие и краткое описание протоколов
- •Соотношение между tcp/ip и osi/iso
- •Межсетевой протокол ip
- •Транспортный протокол tcp
- •Флаги (управляющие биты) Это поле содержит 6 битовых флагов:
- •Механизм действия протокола
- •Передача данных
- •Протокол дэйтаграмм udp
- •Протоколы сетевого уровня
- •Протоколы электронной почты
- •Протокол pop3
- •Протокол imap4
- •Протокол smtp
- •Спецификация mime
- •Проблемы с кодировкой
- •Протокол ftp
- •Http – Протокол передачи гипертекстов
- •Что такое транзакция http
- •Клиентские методы http
- •Что возвращается обратно: коды ответа сервера
- •Заголовки http
- •Задания по теме «Протоколы Интернет»
- •Глава 2 Краткий обзор основных технологий Веб
- •Язык разметки гипертекста html
- •Язык xml
- •Язык программирования скриптов на стороне клиента JavaScript
- •Язык Java на клиентской странице
- •Технология «клиент-сервер». Cgi
- •Программирование для серверов
- •Технология ssi
- •Язык программирования Perl
- •Глава 3. Основные этапы разработки сайтов
- •Модель водопада
- •Спиральная модель
- •Модель Уолта Диснея
- •Управление проектами
- •Глава 4. Веб – дизайн и обработка гипертекстовых документов
- •Главная страница
- •Рекомендации по дизайну главной страницы
- •Какими должны быть внутренние страницы web-сайта
- •Логическое проектирование дизайна сайта
- •Основные этапы и уровни информационного обмена
- •Сжатие изображений с помощью фракталов
- •Язык разметки гипертекста html
- •Теги, атрибуты, значения
- •Структура документа
- •Разрыв строки
- •Предварительное форматирование
- •Выравнивание текста
- •Комментарии
- •Физическая и логическая разметка документа
- •«Физические» теги:
- •«Логические» теги:
- •Специальные символы
- •Графика
- •Формы html
- •Теги div и span
- •Метатеги
- •Новое в html 5
- •Валидация документов
- •Вопросы и задания
- •Задания для выполнения
- •Каскадные таблицы стилей css
- •Способы включения каскадных таблиц стилей
- •Множественные классы
- •Селекторы идентификаторов (id-селекторы)
- •Комментарии
- •Свойства шрифтов. Свойство шрифтов font позволяет задать одну или несколько характеристик шрифта.
- •Свойства текста.
- •Цвет и фон.
- •Представление документа в виде специальных областей – блоков
- •Отступы, поля, позиционирование
- •Границы элементов
- •Визуальное форматирование
- •Визуальные эффекты
- •Свойства списков
- •Свойства таблиц
- •Псевдоклассы
- •Псевдостили текста
- •Псевдоэлементы
- •Различные свойства
- •1. Свойства шрифтов.
- •2. Свойства текста.
- •3. Свойства цвета и фона.
- •4. Свойства рамки.
- •6. Свойства изображений.
- •Css. Примеры
- •Новое в css3
- •Валидация css
- •Глава 5. Язык JavaScript Введение
- •Включение скриптов JavaScript в html-код
- •Создание простых сценариев
- •Комментарии. Скрытие сценариев от браузеров
- •Отладка скриптов. Ввод и вывод данных
- •Инструменты для разработчика
- •Описание языка Типы данных
- •Преобразование типа
- •Специальные числа
- •Булев тип
- •Переменные типа Undefined и Null
- •Массивы
- •Оператор with
- •Оператор switch
- •Метод eval()
- •Функции
- •Передача параметров по значению и по ссылке
- •Глобальные и локальные переменные
- •Модель событий
- •Ключевое слово this
- •Исключения: throw/catch/finally
- •Объектная модель
- •Пользовательские объекты
- •Прототипы
- •Встроенные объекты String, Array, Date, Math Объект String
- •Объект Date (Дата)
- •Методы объекта Date
- •Объект Function (Функция)
- •Свойства Function
- •Методы Function
- •Объекты браузера
- •Объект window
- •Методы объекта window
- •Свойства окна, передаваемые методу open
- •Свойства и методы объекта navigator
- •Свойства объекта screen
- •Свойства и методы объекта history
- •Свойства и методы объекта document
- •Коллекции и подчиненные объекты объекта document Обращение к элементам страницы
- •Свойства и методы объекта location
- •Свойства и методы объекта style
- •Объект layer
- •Свойства объекта layer
- •Методы объекта layer
- •Навигация по дереву документа
- •Свойства объектов-узлов
- •Несколько других свойств узлов - объектов dom
- •Создание новых узлов
- •Добавление узлов в документ
- •Копирование: метод cloneNode()
- •Удаление и замена узлов в документе
- •Работа с атрибутами элементов
- •Метод removeAttribute()
- •Модель ajax:
- •Запрос к серверу. Класс xmlHttpRequest
- •Методы класса xmlHttpRequest
- •Свойства класса xmlHttpRequest
- •Создание экземпляра объекта xmlHttpRequest
- •Использование dom
- •Проблема с кешированием в Microsoft Internet Explorer
- •Информируйте пользователя
- •Подготовьте запасной план
- •Работа с cookie
- •Формат и синтаксис cookie
- •Синтаксис http заголовка для поля Cookie
- •Дополнительные сведения
- •Способы задания значений cookie
- •Примеры на JavaScript
- •Тестовые вопросы по языку JavaScript
- •Упражнения и задачи по JavaScript
- •Список итоговых заданий (курсовая работа)
- •Литература
- •Приложение 1. Программное обеспечение Adobe Dreamweaver cs4
- •Типы данных
- •Ассоциированные массивы
- •Операторы
- •Подпрограммы
- •Введение
- •Возможности php.
- •Инструменты для разработки
- •Как php работает
- •Глава 1. Язык php Типы данных
- •Массивы и инициализация массивов
- •Объектно-ориентированное программирование в php Основные понятия ооп
- •Классы и Объекты
- •Конструкторы и деструкторы
- •Наследование классов и интерфейсов
- •Магические методы
- •Обработка ошибок
- •Ошибки php и журнал error_reporting
- •Чтение и запись бинарных файлов
- •Работа с каталогами в рнр
- •MySql – сервер: бд1; бд2; бд3; бд4;
- •Язык запросов sql
- •Операция соединения.
- •Команды sql для создания баз данных и таблиц
- •Выборка данных из таблиц бд
- •Работа с MySql (сохранение данных в базе данных).
- •Работа с MySql занесение и получение данных из базы данных
- •Некоторые улучшения в организации работы с данными
- •Передача данных от клиента к серверу и обратно. Протокол http
- •Клиентские методы http
- •Обработка html-форм
- •Передача переменных в скрипт.
- •Передача значений переменных по методу get
- •Передача данных из клиентской формы на сервер по методу get
- •Передача данных из клиентской формы на сервер по методу post
- •Php и различные формы
- •Обработка форм
- •Более сложные переменные формы
- •Базы данных и язык sql
- •Реляционные субд Модель данных в реляционных субд
- •Нормализация модели данных
- •Язык sql
- •Команды sql
- •Команды определения структуры данных (Data Definition Language – ddl)
- •Команды манипулирования данными (Data Manipulation Language – dml)
- •Команды управления транзакциями (Transaction Control Language - tcl)
- •Команды управления доступом (Data Control Language – dcl)
- •Работа с командами sql Извлечение данных, команда select
- •Ключевое слово distinct
- •Секция from, логическое связывание таблиц
- •Секция where
- •Секция order by
- •Групповые функции
- •Секция group by
- •Секция having
- •Изменение данных
- •Команда insert
- •Команда delete
- •Команда update
- •Определение структуры данных Команда create table
- •Команда alter table
- •Команда drop table
Конструкторы и деструкторы
В PHP допустимы только константные инициализаторы для переменных класса. Для инициализации переменных класса используется функция инициализации, которая вызывается автоматически при создании объекта класса. Такая функция называется конструктором. Метод-конструктор вызывается автоматически при каждом создании объекта. В PHP4 имя этой функции совпадает с именем класса. В PHP 5 конструктором класса является метод __construct(). При уничтожении объекта вызывается специальный метод __destruct() – деструктор класса.
<?php //pr21
class MyClass {
private $property;
function _construct() {
echo "Запущен конструктор";
}
function __destruct() {
echo "Запущен деструктор";
}
function MyClass($n=1) {
echo "Запущен другой конструктор";
$this->property=$n;
}
}
$obj = new MyClass(); // Выводит "Запущен конструктор"
unset($obj); // Выводит "Запущен деструктор"
$obj1 = new MyClass(10);
?>
Запущен конструктор Запущен деструктор Запущен конструктор Запущен деструктор
Конструкторы PHP4, имена которых совпадают с именами классов, будут работать с PHP5 без изменений кода. Для совместимости с предыдущей версией PHP 5 поступает следующем образом: если при создании объекта в классе не найдется конструктора __construct(), то PHP пытается выполнить метод, имя которого совпадает с именем класса.
В приведенном выше примере конструктор не перегружается, а вызывается первый конструктор.
В случае наследования классов конструктор базового класса при создании порожденного класса неявно не вызывается. Если необходимо вызвать конструктор или деструктор базового класса из порожденного класса, это нужно сделать явно, через указатель parent.
<?php //pr22
class MyClass {
function __construct() {
echo "конструктор базового класса";
}
function __destruct() {
echo " деструктор базового класса";
}
}
class DerivedClass extends MyClass {
function __construct() {
echo "конструктор порожденного класса";
parent::__construct();
}
function __destruct() {
echo " деструктор порожденного класса";
parent::__destruct();
}
}
$obj = new DerivedClass();
unset($obj);
?>
Вывод:
конструктор порожденного класса конструктор базового класса
деструктор порожденного класса деструктор базового класса
Рассмотрим еще один пример вывода даты/времени:
<?php
class Dateclass {
var $month=array( "Январ", "Феврал", "Март", "Апрел", "Ма", "Июн", "Июл","Август","Сентябр", "Октябр", "Декабр", "Январ");
var $day=array ( "Воскресенье", "Понедельник", "Вторник","Среда", "Четверг" , "Пятница" , "Суббота");
var $dnum; var $mnum; // Переменные класса
var $daym; var $year;
function Dateclass() { //Конструктор: инициализация переменных
$this->dnum = date("w");
$this->mnum = date("n");
$this->daym = date("d");
$this->year = date("Y");
}
function show(){// метод
$dnum =$this->dnum;
$mnum = $this->mnum;
$daym =$this->daym;
$year = $this->year;
$textday =$this->day[$dnum];
$monthm =$this->month[$mnum-1];
if ($mnum==3||$mnum==8)
{ $k="а"; }
else {$k="я";}
echo "Сегодня: $textday, $daym $monthm$k $year г.";
}
}
$obj=new Dateclass();// Создание объекта
$obj->show();//Вызов метода из объекта
?>
Результат:
Сегодня: Воскресенье, 05 Апреля 2009 г.
В PHP 5 объекты представляют объектные ссылки, присвоение объекта или его передача в качестве параметра функции происходит по ссылке, а не по значению. Если необходимо провести копирование объекта, то используется кланирование объекта. Объект копируется со всеми своими методами, свойствами и их значениями:
<?php //pr24
class MyClass{
public $property=1;
}
$obj1 = new MyClass;
$obj2=$obj1;//ссылка на тот же объект
echo $obj1->property; // Выводит 1
$obj2->property = 2;
echo $obj1->property; // Выводит 2
$obj3 = clone $obj1;//создание нового объекта
echo $obj3->property; // Выводит 2
$obj3->property = 3;
echo $obj1->property; // Выводит 2
?>
Для копирования объекта используется ключевое слово clone, которое вызывает метод __clone() и к которому нельзя обратиться непосредственно. Метод __clone() необязательно описывать в классе, однако его перегрузка, позволит изменить значения свойств копируемого объекта:
<?php
class MyClass{
var $property;
function __clone() {
$this->property = 2;
}
}
$obj1 = new MyClass;
$obj1->property = 1;
$obj2 = clone $obj1;
echo $obj1->property; // Выводит 1
echo $obj2->property; // Выводит 2
?>
Метод __clone() не может принимать никакие аргументы, однако позволяет обратиться к исходному объекту через указатель $this и получаемому в результате копирования объекту через указатель $that.