PHP 5 about PHP 5 старт PHP 5 установка PHP 5 синтаксис PHP 5 змінні PHP 5 echo і print PHP 5 типи даних PHP 5 strings PHP 5 константи PHP 5 оператори PHP 5 if...else...elseif PHP 5 switch PHP 5 цикл while PHP 5 for і foreach PHP 5 функції PHP 5 масиви PHP 5 сортування масивів PHP 5 superglobals PHP 5 форми input PHP 5 форми обробка PHP 5 форми - обов'язкові поля PHP 5 форми - перевірка електронної пошти і URL РНР 5 форми заповнення PHP 5 багатовимірні масиви PHP 5 час і дата PHP 5 include PHP 5 файли обробка PHP 5 файли Open/Read/Close PHP 5 файли створення / запис PHP 5 файли завантаження PHP MySQL бази даних PHP MySQL Підключення PHP MySQL Створення бази даних PHP MySQL Створення таблиці PHP MySQL вставка даних PHP MySQL Отримання ідентифікатора останнього доданого запису PHP MySQL вставка кількох записів PHP MySQL Підготовлені вирази PHP MySQL відображення даних з таблиці PHP MySQL Видалення даних PHP MySQL оновлення даних PHP MySQL обмежити вибірку даних PHP регулярні вирази 1 PHP регулярні вирази 2 PHP регулярні вирази 3 PHP регулярні вирази 4 PHP ООП PHP ООП class PHP ООП модифікатори доступу PHP ООП extends PHP ООП статичні методи і властивості, константи PHP ООП abstract PHP ООП interface PHP альтернативний синтаксис керуючих конструкцій

PHP ООП class


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

Ключовими поняттями парадигми ООП є поняття "клас" і "об'єкт". Описом об'єкта є клас, а об'єкт являє екземпляр цього класу. Можна провести наступну аналогію: у всіх є деяке уявлення про людину - наявність двох рук, двох ніг, голови, нервової системи, головного мозку. Є деякий шаблон - цей шаблон можна назвати класом. А реально ж існуюча людина (фактично екземпляр даного класу) є об'єктом цього класу.

Для створення класу в PHP використовується ключове слово class . Наприклад, новий клас, що представляє користувача:

class User
{

}

Щоб створити об'єкт класу User , застосовується ключове слово new :

<?php

class User
{

}

$user = new User();
print_r($user);     //  User Object ( )
?>

В даному випадку змінна $user є об'єктом класу User . За допомогою функції print_r() можна вивести вміст об'єкта, як і в випадку з масивами.


Властивості і методи

Клас може містити властивості, які описують якісь ознаки об'єкта, і методи, які визначають його поведінку. Додамо до класу User кілька властивостей і методів:

<?php

class User
{
    public $name, $age;

    function getInfo()
    {
        echo "Імя: $this->name ; Вік: $this->age <br>";
    }
}

$user = new User();

$user->name = "Andrew"; // установка значення $name в класі User
$user->age = 25; // установка значення $age в класі User

$user->getInfo(); // виклик метода(функції) getInfo()   //  Імя: Andrew ; Вік: 25

print_r($user);     //  User Object ( [name] => Andrew [age] => 25 )

?>

Тут клас User містить два поля змінних: $name і $age . Поле змінної оголошуються як звичайні змінні, перед якими стоїть модифікатор доступу - в даному випадку модифікатор public .

Методи представляють звичайні функції, які виконують певні дії. Тут функція getInfo() виводить зміст раніше визначених змінних.

Для звернення до поточного об'єкту з цього ж класу використовується вираз $this - він і є поточним об'єктом. Щоб звернутися до властивостей і методів об'єкта застосовується оператор доступу -> . Наприклад, щоб отримати значення властивості $name , треба використовувати вираз $this->name . Причому при зверненні до властивостей знак $ не використовується.

При використанні об'єкта класу User також застосовується оператор доступу для отримання або установки значення властивостей, а також для виклику методів.


Конструктори

Конструктори представляють спеціальні методи, які виконуються при створенні об'єкта і служать для початкової ініціалізації його властивостей. Для створення конструктора треба оголосити функцію з ім'ям __construct() з двома підкресленнями попереду :

<?php

class User
{
    public $name, $age;     // $name, $age поля для збереження даних в змінні, public - публічні відкриті

    public function __construct($name, $age)   //  конструктор з вхідними параметрами $name, $age
    {
        $this->name = $name;    //  $this->name присвоюємо цій змінній  значення $name
        $this->age = $age;
    }

    public function getInfo()
    {
        echo "Імя: $this->name ; Вік: $this->age <br>"; //  відображаємо властивості полей класу
    }
}

$user2 = new User("Andrew", 25);    //  записуємо дані в конструктор
$user2->getInfo();                              //  Імя: Andrew ; Вік: 25

?>

Функція конструктора в даному випадку приймає два параметри. Їх значення передаються властивостям класу. І тепер щоб створити об'єкт, нам треба передати значення для відповідних параметрів: $user2 = new User("Andrew", 25);


Параметри за замовчуванням

Щоб зробити конструктор більш гнучким, ми можемо позначити один або кілька параметрів як необов'язкових. Тоді при створенні об'єкта необов'язково вказувати всі параметри. Наприклад, змінимо конструктор наступним чином:

function __construct($name = "Tom", $age = 33)
{
    $this->name = $name;
    $this->age = $age;
}

Таким чином, якщо не будуть задані параметри, замість них будуть використовуватися значення "Tom" і 33. І тепер ми можемо створити об'єкт User декількома способами:

$user1 = new User("Джон", 25);
$user1->getInfo();
$user2 = new User("Джек");
$user2->getInfo();
$user3 = new User();
$user3->getInfo();

 


Наш партнер:
beta test mp3 playlist downloader