- •Инструменты разработки интернет-приложений
- •Введение
- •Интернет – основа интерактивного бизнеса
- •Электронный бизнес – закономерный этап инновационной спирали
- •Особенности Интернет как среды электронной коммерции
- •Основные определения
- •Этапы разработки и продвижения Интернет-проекта
- •Планирование Интернет-проекта
- •Определение контента сайта
- •Размещение сайта в Интернет
- •Регистрация в поисковых системах
- •Регистрация в рейтингах
- •Баннерная реклама
- •Обмен текстовыми ссылками
- •Массовая рассылка рекламных сообщений
- •Размещение объявлений о сайте на электронных досках
- •Рассылка в телеконференции (группы новостей)
- •Контрольные вопросы
- •Принципы работы интернет-приложений
- •Архитектура «клиент-сервер»
- •Отладка web-приложений на сервере
- •Сравнительный анализ возможностей web-технологий
- •Использование баз данных в Интернет
- •Интерактивное взаимодействие с помощью форм
- •Элементы управления формы
- •Способы передачи параметров Строка передаваемых параметров
- •Метод get
- •Метод post
- •Контрольные вопросы
- •Разработка интернет-приложений на языке php
- •Область применения языка php
- •Теги сценарияPhp
- •Константы
- •Переменные
- •Типы данных
- •Скалярные типы
- •Составные типы Массивы
- •Приведение типов
- •Управляющие конструкции
- •Операторы
- •Функции
- •Определение и вызов функций
- •Вложенные функции
- •Возврат значений из функции
- •Рекурсивные функции
- •Объекты (классы)
- •Работа с файлами
- •Стандартные функции php для работы с файлами
- •Обработка данных в нескольких файлах Использование атрибута action
- •Операторы включения файлов
- •СубдMySql
- •История созданияMySql
- •Взаимодействие с субдMySql
- •Способ хранения таблиц и баз данных
- •Типы таблиц
- •Типы данных в субдMySql
- •Стандартные функции рнр для работы с MySql
- •Соединение с сервером
- •Выбор базы данных
- •Выполнение указанного запроса
- •Извлечение информации
- •Ввод данных
- •Обработка ошибок
- •Контрольные вопросы
- •Разработка интернет-приложений в delphi
- •КонсольноеCgi-приложение
- •Использование специальных средствDelphIдля разработкиweb-приложений
- •КомпонентTWebModul
- •КомпонентTPageProducer
- •Компоненты для работы с базами данных
- •Редактирование наборов данных
- •Добавление записей
- •Удаление записей
- •Обновление записей
- •Создание и использование форм ActiveForm
- •Отладка приложений на локальном сервереWebAppDebugger
- •Обзор дополнительных возможностейDelphiдля создания сетевых приложений
- •Контрольные вопросы
- •Список литературы
- •Приложение а Листинг программы проверки переменных окружения сервера apache
- •Приложение б Поисковые системы и каталоги
- •Приложение в Службы баннерного обмена
Рекурсивные функции
Ситуация, при которой функция многократно вызывает сама себя, пока не будет выполнено некоторое условие, открывает замечательные возможности. Рекурсивные функции особенно часто используются при выполнении повторяющихся действий — например, при поиске в файлах/массивах и построении графических изображений (например, фракталов). Классическим примером рекурсивных функций, встречающимся во многих курсах программирования, является суммирование чисел от 1 до N. Программа, приведенная в следующем примере, суммирует все целые числа от 1 до 10.
Пример использования рекурсивной функции для суммирования последовательных целых чисел:
function summation ($count) {
if ($count != 0) :
return $count + summation($count-1);
endif;
}
$sum = summation(10);
print "Summation = $sum";
Если функция вызывается достаточно часто, рекурсия делает программу более эффективной. Тем не менее, при использовании рекурсии необходима осторожность, поскольку ошибки могут привести к зацикливанию программы.
Объекты (классы)
Объектом называется набор данных и связанные с данными операции (методы). Например, объект Автомобиль имеет данные: двигатель, руль, бензобак и т.д. и связанные с данными операции завести двигатель; повернуть нелево/направо; заправиться.
PHP, как и любой объектно-ориентированный язык программирования, имеет средства поддержки классов.
Объявление класса:
сlass <имя класса> {описание переменных и методов (функций) класса}
Пример объявления и описания класса Book:
<?php
class Book{
var $Name,$Author,$Price,$Count_Page,$Tirag;
function Book ($mas){
list($this->Name,$this->Author,$this->Price,$this->Count_Page,$this->Tirag)=$mas;}
function Content(){
return (' " '.$this->Name.' " '.$this->Author);}
function Price_tirag(){
return("Тираж книги ".$this->Price*$this->Tirag);}
function Price_page() {
return ("Стоимость страницы ".$this->Price / $this->Count_Page);}
}?>
Обращение к переменной класса производится через описатель $this->
Метод, имя которого совпадает и именем класса (в данном примере Book), называется конструктором класса. Экземпляры класса (переменные) создаются через вызов конструктора оператором new:
$ переменная->конструктор класса (параметры…).
Пример вызова методов класса Book:
<?
$book1=new Book (array("Зеленая миля", "Стивен Кинг", 150, 450,17000));
$book2=new Book (array("Сказка о тройке", "Стругацкие", 100, 350,20000));
echo $book1->Content();?><br><?
echo $book1->Price_tirag();?><br><?
echo $book1->Price_page();?><br><?
echo $book2…………………..
?>
Часто встречается ситуация, когда в рамках данного класса можно выделить наследуемый класс (подкласс) с дополнительными данными и работы с ними. Например, в рамках класса Автомобиль можно выделить Кабриолет с дополнительными данными Откидной верх и функциями по его открыванию и накрыванию.
Объявление подкласса:
сlass <имя подкласса> extends <имя класса>{описание переменных и методов (функций) подкласса}
Пример объявления подкласса Book_CD.
<?php class Book_CD extends Book{
var $chislo_CD, $Price_CD; //одного
function Book_CD ($mas) {
list($this->Name,$this->Author,$this->Price,$this->Count_Page,$this->Tirag,
$this->chislo_CD,$this->Price_CD)=$mas;}
function All_price() {return ($this->Price+$this->chislo_CD*$this->Price_CD);}
function Price_tirag() {return ($this->All_price()*$this->Tirag);}
}?>
Ключевое слово extends указывает, что класс Book_CD является расширением класса Book. Новый класс автоматически наследует все переменные и методы класса Book и добавляет переменные chislo_CD, Price_CD, с которыми работает новый метод All_price(). В новом классе метод Price_tirag() замещается одноименным методом, который работает по другому алгоритму. Реализуется принцип полиморфизма.
Пример вызова методов класса и подкласса:
<? $book1=new Book(array("My SQL", "Леон Аткинсон", 210, 648,3500));
$book2=new Book_CD(array("PHP в WEB-дизайне", "Алексей Костарев", 210, 560, 3500, 2,50));
echo $book1->Content().” – “. echo $book1->Price_tirag()?><br> // 735000
<? echo $book2->Content().” – “. echo $book2->Price_tirag() ?> // 1085000
Объекты могут быть элементами массивов. Переменные объекта тоже могут быть массивами. Поэтому можно построить довольно сложные структуры (деревья, списки и т.п.).