Программирование с нуля - это совсем просто! 135) Курс PHP: Объектно-ориентированное программирование
Школа программирования
135) Курс PHP: Объектно-ориентированное программирование
Письмо от Павла:
я давно читаю вашу рассылку, но в некоторых случаях вы
показываете длинный путь решениЯ, к приеру:
while ( ! feof ( $fp ) ) { // пока не конец файла
$buf = fgets( $fp ); // вводим строку из файла в переменную $buf
print $buf . "<p>"; // выводим ее на экран
}
куда проще сделать так:
while ($buf=fgets($fp,1024) ) { // пока не конец файла
print $buf . "<p>"; // выводим ее на экран
}
да и ошибка (не указание кол-ва символов в fgets-е)- это
некрасиво ;) удачи ;)
Объектно-ориентированное программирование
Язык PHP содержит немало выразительных средств создания программ (особенно мощна его библиотека стандартных функций), однако и синтаксис PHP сам по себе включает такой богатый механизм повышения наглядности, как объекты.
Каждый объект - это экземпляр соответствующего класса (сложного типа данных).
Описание класса задается конструкцией вида
class название-класса
{
}
Внутри класса задаются его свойства, поля (внутренние переменные), перед которыми указывается ключевое слово var:
class MyClass
{ var $x; var $zagruzka;
}
Помимо свойств, в описание класса включаются и методы, предназначенные для работы с этими свойствами. Они представляют собой описания функций PHP:
class MyClass
{ var $x; var $zagruzka;
function sum() {
// тело функции
// ...
}
}
Чтобы явно указать, что внутри функции-метода происходит обращение к внутренним переменным класса, перед именем каждой переменной надо указывать "$this->" ($this - это условное обозначение текущего экземпляра объекта, своеобразная ссылка на самое себя). Знак "$" перед последующим названием поля не ставится.
Создадим, например, класс, имитирующий поведение массива.
class MyArray
{
}
Пусть внутри него будет реальный массив, доступ к которому тем не менее от внешнего пользователя будет скрыт:
class MyArray
{ var $items = array();
}
Мы хотим, во-первых, добавлять элементы в массив, во-вторых, устанавливать значения определенных элементов, и в-третьих получать доступ к элементам. Кроме того, нам понадобится функция получения числа элементов в массиве.
class MyArray
{ var $items = array(); var $ilen=0; // число элементов в массиве
function add( $item ) {
// добавить элемент
}
function get( $inum ) {
// получить значение элемента
}
function set( $inum, $item ) {
// установить значение элемента
}
function count() {
// длина массива
}
}
Добавление:
function add( $item ) {
// добавить элемент
$this->items[$this->ilen ] = $item;
$this->ilen ++;
}
Значение элемента извлекаем обычным способом:
function get( $inum ) {
// получить значение элемента return $this->items[$inum ];
}
При этом желательно проверить, корректен ли индекс массива - параметр $inum.
Задаем значение схожим образом:
function set( $inum, $item ) {
// установить значение элемента
$this->items[ $inum ] = $item;
}
Число элементов определяется очевидным способом:
function count() {
// длина массива return $this->ilen;
}
Все эти описания должны быть расположены внутри класса.
Перед использованием объекта его необходимо создать, делается это с помощью команды new и следующим за ней именем класса:
$myitems = new MyArray();
Теперь переменная $myitems будет экземпляром класса MyArray(), к ее методам можно обращаться из работающей программы:
Задание. Напишите класс, моделирующий работу стека (первый вошел, первый вышел) - в него можно добавлять и забирать элементы, каждый из элементов помещается (добавляется) всегда в самый конец стека, а после изъятия (изымается всегда последний помещенный в него элемент) удаляется из стека.
В книге описаны десятки технологий, каждой из которых посвящены отдельные книги. Таким образом, купив одну мою книгу, вы существенно сэкономите :) В книге полностью описан язык Delphi (версия 2006, полностью совместимая с Turbo Delphi) для обеих платформ - Win32 и .NET. Охвачены также темы работы с файлами на этих платформах, создания файл-серверных, клиент-серверных, распределенных приложений, веб-программ (Indy, ASP.NET, веб-сервисы). Описаны языки SQL и OCL. Немало глав посвящены истории программирования
и различных технологий. Особое внимание уделено созданию программ с помощью технологии ECO и языка моделирования UML - программы фактически рисуются, и теперь даже для создания корпоративных приложений и их переноса в Интернет не обязательно знать программирование!
Отдельная часть отведена технологиям организации групповой работы, управления требованиями, контроля версий, локализации и тестирования.
Тут подробнее про книгу.
Другие мои книги, которые пока доступны в продаже: