
- •Установка и настройка по
- •Установка 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
Объектная модель php5
Кроме нового названия для конструкторови появления деструкторов в PHP5 произошло еще достаточно много изменений. Мы не будем обсуждать их подробно, только опишем в общих чертах. Основное изменение – это передача значений параметровклассапо ссылке и присвоениеобъектовпо ссылке, а не по значению, как это было в PHP4. В PHP5 если создаются две равные переменные типаобъект, то они указывают на одно значение и изменяются одновременно (мы приводили похожий пример с переменными строкового типа). В связи с этим появился новый механизм для создания копийобъектов– так называемое клонирование. В PHP4 всеметодыи переменныеклассадоступны извне, т.е. они всегда являются открытыми. В PHP5 переменные иметодыможно делать открытыми (доступными отовсюду), закрытыми (доступными только внутрикласса) и защищенными (доступными внутриклассаи в его производныхклассах). Кроме того, появилась возможность создаватьинтерфейсыиабстрактные классыи многое другое. В целомобъектная модель в PHP5значительно усовершенствована для более точного соответствия объектно-ориентированной парадигме программирования.
Решение задачи
Итак, мы хотели по выбору пользователя генерировать форму для ввода описания статьи или человека и отображать данные, введенные в эту форму. Попробуем решить эту задачу, используя объектно-ориентированный подход. Для начала создадим форму, где пользователь выбирает, что он хочет создать, – описание статьи или человека (точнее, это будут две формы):
<form action="task1.php">
Создать описание статьи: <input type=submit
name=art_create
value="Create Article">
</form>
<form action="task1.php">
Создать описание личности: <input
type=submit name=pers_create
value="Create Person">
</form>
Теперь напишем файл для обработки этих форм. В нем создадим два класса– статьи и личности. У каждогоклассаимеетсяметоддля инициализации его переменных иметоддля отображенияобъектовданногокласса. При решении задачи будут использованы две функции, встроенные в PHP для работы склассамииобъектами. Это функцияget_class(объект), возвращающая имякласса, экземпляром которого являетсяобъект, переданный ей в качестве параметра. И функцияget_class_vars(имякласса), которая возвращает массив всехсвойствклассаи их значений по умолчанию. Аналогично можно получить массив имен всехметодовкласса:get_class_methods(имякласса)
Листинг 6.6. Использование объектно-ориентированного подхода (html, txt)
Заключение
Итак, мы изучили основные понятия объектной модели, используемой в языке PHP. Были описаны правила создания классови их представителей-объектов, способы задания начальных значений переменнымкласса, способы получения значенийсвойстви вызовметодовклассов.
Работа с массивами данных |
|
Лекция посвящена более подробному изучению массивов и функций, встроенных в PHP для работы с ними. Рассматриваются функции для поиска элементов в массиве, для сортировки элементов массива, а также применение созданных пользователем функций ко всем элементам массива, разбивка массива на подмассивы и другое |
|
|
|
Язык PHP предоставляет множество функций для работы с массивамиданных. Как правило, эти функции решают наиболее часто встречающиеся задачи, связанные с обработкоймассивов. В этой лекции мы рассмотрим некоторые из таких функций и с их помощью решим несколько прикладных задач. В частности, будут рассмотрены функции дляпоиска элементов в массиве, длясортировки элементов массива,применение созданных пользователем функций ко всем элементам массиваиразбивка массива на подмассивы. Массивы В одной из первых лекций мы рассказывали о том, как можно создать массивданных. Напомним, чтомассивможносоздатьдвумя способами:
Например, нам нужно хранить список документов, которые будут удалены из базы данных. Естественно хранить его в виде массива,ключомв котором будет идентификатор документа (его уникальный номер), азначением– название документа. Этотмассивможносоздатьтаким образом: <? $del_items = array("10"=>"Наука и жизнь", "12"=>"Информатика"); $del_items["13"] = "Программирование на Php"; // добавляем элемент в массив ?>
Операции с массивами Массив– это тип данных, с данными этого типа должны быть определеныоперации. Какие жеоперацииможно производить смассивами?Массивыможноскладыватьисравнивать. Складывают массивыс помощью стандартного оператора «+». Вообще говоря, этуоперациюпо отношению кмассивамточнее назвать объединением. Если у нас есть двамассива,$aи$b, то результатом ихсложения(объединения) будетмассив$c, состоящий из элементов$a, к которым справа дописаны элементымассива$b. Причем, если встречаются совпадающиеключи, то в результирующиймассиввключается элемент из первогомассива, т.е. из$a. Таким образом, еслискладываются массивыв языке PHP, от перемены мест слагаемых сумма меняется. <? $a = array("и"=>"Информатика", "м"=>"Математика"); $b = array("и"=>"История","м"=>"Биология", "ф"=>"Физика"); $c = $a + $b; $d = $b +$a; print_r($c); /* получим: Array([и]=>Информатика [м]=>Математика [ф]=>Физика) */ print_r($d); /* получим: Array([и]=>История [м]=>Биология [ф]=>Физика) */ ?>
Пример 7.1. Сложение массивов (html, txt) Сравнивать массивыможно, проверяя их равенство или неравенство либо эквивалентность или неэквивалентность. Равенствомассивов– это когда совпадают все парыключ/значениеэлементовмассивов. Эквивалентность – когда кроме равенствазначенийиключейэлементов требуется еще, чтобы элементы в обоихмассивахбыли записаны в одном и том же порядке. Равенствозначенийв PHP обозначается символом «==», а эквивалентность – символом «===». <? $a = array("и"=>"Информатика", "м"=>"Математика"); $b = array("м"=>"Математика", "и"=>"Информатика"); if ($a == $b) echo "Массивы равны и"; else echo "Массивы НЕ равны и "; if ($a === $b) echo " эквивалентны"; else echo " НЕ эквивалентны"; // получим echo "Массивы равны и НЕ эквивалентны" ?>
Пример 7.2. Сравнение массивов (html, txt) Далее рассмотрим еще одну важную операцию с массивом– подсчетколичества его элементов. Для ее реализации в PHP есть специальная функция. Функция count Не раз уже мы использовали функцию count(), чтобы вычислитьколичество элементов массива. На самом деле эта функция вычисляет число элементов в переменной вообще. Если применить ее к любой другой переменной, она возвратит1. Исключение составляет переменная типаNULL–count(NULL)есть0. Кроме того, применяя эту функцию к многомерномумассиву, чтобы получитьчисло его элементов, нужно использовать дополнительный параметрCOUNT_RECURSIVE. <? $del_items = array("langs" => array( "10"=>"Python", "12"=>"Lisp"), "other"=>"Информатика"); echo count($del_items) . "<br>"; // выведет 2 echo count($del_items,COUNT_RECURSIVE); // выведет 4 ?>
Пример 7.3. Применение функции count() (html, txt) Мы не будем повторять все, что было сказано о массивахв предыдущих лекциях. В этой лекции мы рассмотрим некоторые встроенные функции для работы смассивами. И начнем мы с функций дляпоиска значений в массиве. |