ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 18.05.2024

Просмотров: 586

Скачиваний: 0

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

СОДЕРЖАНИЕ

1. Історія php

2. Можливості php

3. Установка і настройка по

3.1. Установка Apache 1.3.29 під Windows xp

3.2. Установка php 4.3.4 під Windows

1. Основний синтаксис

1.1 Розділення інструкцій

1.2 Коментарі

2. Змінні, константи і оператори

2.3 Константи

2.4 Оператори

1. Основний синтаксис

1.1 Розділення інструкцій

1.2 Коментарі

2. Змінні, константи і оператори

2.3 Константи

2.4 Оператори

1.2 Оператор else

1.3 Оператор elseif

1.4 Оператор switch

2 Цикли

3 Оператори передачі управління

4 Оператори включення

4. Лекція

2 Типи серверів

3 Протокол http і способи передачі даних на сервер

4 Методи

5 Використання html-форм для передачі даних на сервер

5. Лекція:

1 Функції, створені користувачем

2 Аргументи функцій

3 Списки аргументів змінної довжини

4 Статичні змінні

5 Значення, що повертаються

6 Повернення посилання

7 Внутрішні (убудовані) функції

6. Лекція:

2 Ініціалізація змінних

4 Спадкування extends

5 Оператор ::

6 Оператор parent

7. Лекція:

1 Масиви

2 Операції з масивами

3 Функції обробки масивів

4 Сортування масивів

5 Виділення підмасива

8. Лекція:

2 Запис даних у файл

3 Читання даних з файлу

4 Перевірка існування файлу

5 Видалення файлу

6 Завантаження файлу на сервер

10. Лекція:

1 Бази даних: основні поняття

2 Ключі

3 Індексація

4 Субд MySql

5 Язик sql

6 Основні оператори язика sql

6.1 Оператор create table

6.2 Оператор drop table

6.3 Оператор alter table

7 Оператор select

8 Оператор insert

9 Оператор update

10 Оператор delete

11. Лекція:

1 Побудова інтерфейсу для додавання інформації

2 Запис даних в базу даних

3 Відображення даних, що зберігаються в MySql

1 Побудова інтерфейсу для додавання інформації

2 Запис даних в базу даних

3 Відображення даних, що зберігаються в MySql

12. Лекція:

2 Механізм сесій

3 Настройка сесій

4 Робота з сесіями

4.1 Створення сесії

4.2 Реєстрація змінних сесії

4.3 Видалення змінних сесії

5 Безпека

2 Ініціалізація змінних

Часто деяким атрибутам класу буває необхідно привласнювати значення відразу після створення представника класу. Коли ми створювали клас статей, для присвоювання значень атрибутам ( властивостям ) класу ми використали спеціальну функцію make_article(). Загалом кажучи, ми вчинили не зовсім вірно, тому що зайнялися винаходом велосипеда. Спеціально для завдання початкових значень атрибутам класу існує два стандартних методи. В PHP4 можна ініціалізувати значення за допомогою оператора var або за допомогою функції конструктора. За допомогою var можна ініціалізувати тільки константні значення. Для завдання не константних значень використовують функцію конструктор, що викликається автоматично, коли об’єкт конструюється із класу. Функція-конструктор повинна мати ім’я, що збігається з ім’ям усього класу, у якому вона визначена.

Приведемо приклад. Допустимо, при створенні об’єкта "стаття" ми хочемо встановити його властивості в такий спосіб: автора - рівним рядку "Іванов", назва й короткий зміст - відповідним елементам глобального масиву $_POST, а дату публікації статті - поточній даті.

<?

class Articles { // Створюємо клас Статей

var $title;

var $author = "Іванов";

var $description;

var $published;

// метод, що привласнює значення атрибутам класу

function Articles(){

$this->title = $_POST["title"];

$this->description = $_POST["description"];

$this ->published = date("Y-m-d"); }

}

?>

В PHP5 конструктор класу йменується __construct. Крім того, в PHP5 з’явилися й деструктори - функції, які викликаються автоматично перед знищенням об’єкта. В PHP5 функція-деструктор повинна бути названа __destruct.

3 Об’єкти

В одній з перших лекцій ми згадували про існування в PHP такого типу даних, як об’єкт. Клас - це опис даних одного типу, даних типу об’єкт. Класи є ніби шаблонами для реальних змінних. Змінна потрібного типу створюється із класу за допомогою оператора new. Створивши об’єкт, ми можемо застосовувати до нього всі методи й одержувати всі властивості, наявні в описі класу. Для цього використовують такий синтаксис:

$ім’я_об’єкта->назва_властивості

або

$ім’я_об’єкта->назва_методу (список аргументів).

Помітимо, що перед назвою властивості або методу знак $ не ставлять.


<?php

$art = new Articles;

// створюємо об’єкт $art

echo ($art ->title);

// виводимо назва об’єкта $art

$another_art = new Articles;

// створюємо об’єкт $another_art

$another_art->show_article();

// викликаємо метод для відображення об’єкта в браузер

?>

Приклад 6.1. Доступ до методів і властивостей об’єкта

Кожний з об’єктів класу має ті самі властивості й методи. Так, в об’єкта $art й в об’єкта $another_art є властивості title, description, author і методи Articles(), show_article(). Але це два різних об’єкти. Уявимо собі об’єкт як директорію у файловій системі, а його характеристики - як файли в цій директорії. Очевидно, що в кожній директорії можуть лежати однакові файли, але проте вони вважаються різними, оскільки зберігаються в різних директоріях. Точно так само властивості й методи вважаються різними, якщо вони застосовуються до різних об’єктів. Щоб одержати потрібний файл із директорії верхнього рівня, ми пишемо повний шлях до цього файлу. При роботі із класами потрібно вказувати повне ім’я функції, що ми хочемо викликати. Директорією верхнього рівня в PHP буде простір глобальних змінних, а шлях указується за допомогою роздільника ->. Таким чином, імена $art->title й $another_art->title позначають дві різні змінні. Змінна в PHP має тільки один знак долара перед ім’ям, тому не можна писати $art->$title. Ця конструкція буде розглянуте не як звертання до властивості title об’єкта $art, а як звертання до властивості, ім’я якого задано змінної $title (наприклад, $art->"" ).

<?php

$art->title = "Введення в Internet";

// так можна встановити значення властивості об’єкта

$art->$title = "Введення в Internet";

// так не можна встановити значення властивості об’єкта

$property = "title";

$art->$property = "Введення в Internet";

// так можна встановити значення властивості об’єкта

?>

Приклад 6.2. Установка значень властивостей

Створюючи клас, ми не можемо знати, яке ім’я буде мати об’єкт цього класу, тим більше що об’єктів може бути багато й усі можуть мати різні імена. Відповідно ми не знаємо, як звертатися до об’єкта усередині визначення класу. Для того щоб мати доступ до функцій і змінним усередині визначення класу, потрібно використати псевдозмінну $this. Наприклад, $this->title повертає значення властивості title у поточного об’єкта даного класу. Іноді цю змінну пропонують читати як "моє власне" (приміром, стосовно властивості ).



4 Спадкування extends

Механізм спадкування - дуже важлива частина всього об’єктно-орієнтованого підходу. Спробуємо пояснити його суть на прикладі.

Допустимо, ми створюємо опис людини. Очевидно, що зробити це ми можемо по-різному, залежно від того, для чого потрібно цей опис. Можна описати людини як програміста: він знає такі-то мови програмування, операційні системи, брав участь у скількох проектах. Однак якщо людина програміст, то ця особа не перестає бути людиною взагалі, тобто має ім’я, прізвище, місце проживання й т.п.

Якщо перевести наші міркування в терміни об’єктно-орієнтованого програмування, то можна сказати, що ми описали два класи - клас людей і клас програмістів, кожний зі своїми властивостями й методами. Причому клас програмістів, мабуть, має всі властивості класу людей і при цьому має свої специфічні характеристики, тобто клас програмістів є підкласом класу людей.

Так, якщо в людини взагалі є ім’я, то в програміста воно теж мабуть є, але не навпаки. Крім програмістів можна виділити ще безліч класів по професійній приналежності людей. І всі вони будуть підкласами класу людей. Часто на практиці зручно визначати загальний клас, що може використатися відразу в декількох проектах (наприклад, клас людей або особистостей), і адаптувати його для специфічних потреб кожного проекту (наприклад, як клас програмістів).

Як це можна реалізувати? За допомогою механізму розширень. Будь-який клас може бути розширенням іншого класу. Розширювальний (або похідний) клас, крім тих властивостей і методів, які описані в його визначенні, має всі функції й властивості основного ( базового класу ). У нашому прикладі клас програмістів - розширений, а клас всіх людей - базовий. Із класу не можна видалити ніякі існуючі властивості й функції, клас можна тільки розширити. Розширюються класи в PHP за допомогою ключового слова extends.

<?php

class Person { // визначаємо клас Особа

var $first_name; // ім’я особи

var $last_name; // прізвище особи

function make_person($t,$a){

// метод установлює значення імені й прізвища об’єкта

$this->first_name = $t;

$this->last_name = $a; }

function show_person(){

// метод відображає інформацію про осіб

echo ("<h2>" . $this->first_name . " " .

$this->last_name . "</h2>"); }

}

class Programmer extends Person{


// визначаємо клас Programmer, що розширює Person

var $langs = array ("Lisp");

// константним масивом задати змінну в var можна

function set_lang($new_lang){

// метод додає ще одну мову до списку відомих

$this->langs[] = $new_lang; }

}

?>

Приклад 6.3. Використання механізму спадкування

Клас Programmer має ті ж змінні й функції, що й клас Person, плюс змінну $langs, у якій міститься список вивчених програмістом мов, і функцію set_lang для додавання ще однієї мови до списку вивчених. Створити представника класу програмістів можна звичайним способом за допомогою конструкції new. Після цього можна встановлювати й одержувати список мов, які знає програміст, і в той же час можна використати функції, задані для класу Person, тобто встановлювати й одержувати ім’я й прізвище програміста й відображати відомості про нього в браузері:

<?php

$progr = new Programmer;

$progr->set_lang("PHP");

// методи, дійсні для класу Programmer

print_r ($progr->langs);

// методи, дійсні для класу Person

$progr->make_person("Bill","Gates");

$progr->show_person();

?>

Відносини, у яких складаються створені нами класи Person й Programmer, називають також відносинами батько-нащадок. Клас Person - батько, а його нащадки, такі як клас Programmer, створюються, ґрунтуючись на ньому, за допомогою розширень. Любий клас може стати батьківським і відповідно породити нащадків.

Порядок визначення класів має значення. Не можна спочатку визначити клас Programmer, що розширює клас Person, а вже потім сам клас Person. Клас повинен бути визначений перед тим, як він буде використатися (розширюватися).

<?php

class Programmer extends Person{

// визначаємо клас Programmer, що розширює Person

var $langs = array ("Lisp");

function Programmer(){

$this->make_person("Іван","Петров"); }

}

?>

Приклад 6.4. Використання конструктора


Смотрите также файлы