Класи є одиницею організації коду в PHP.
Код, який описує поведінку предмета або поведінку процесу, можна згрупувати в клас.
Функції, що належать класу, за домовленістю називають methods.
<?php
class Door
{
function lock()
{
// ...
}
function unlock()
{
// ...
}
}
Класи створюють екземпляри за допомогою ключового слова new: воно виділяє памʼять під екземпляр класу і викликає метод-конструктор класу.
Створений екземпляр класу можна присвоїти змінній.
Щоб викликати методи екземпляра класу, можна скористатися оператором доступу ->.
<?php
$a_door = new Door();
$a_door->lock();
$a_door->unlock();
Створений екземпляр класу може посилатися на себе самого за допомогою спеціальної змінної $this.
Класи також можуть мати властивості: вони поводяться як змінні, привʼязані до екземпляра обʼєкта класу.
До цих властивостей можна звертатися зсередини або ззовні.
<?php
class Car
{
public $color;
function __construct($color)
{
$this->color = $color;
}
function getColor()
{
return $this->color;
}
}
$a_car = new Car("red");
$a_car->color; // => "red" by accessing the property
$a_car->getColor(); // => "red" by invoking the instance method
У цій вправі ми будемо моделювати компʼютерну систему, засновану на вікнах. Ми створимо кілька вікон, які можна переміщати та змінювати їхній розмір. Наступне зображення показує значення, з якими ми працюватимемо нижче.
╔════════════════════════════════════════════════════════════╗
║ ║
║ position::$y,_ ║
║ position::$x \ ║
║ \<---- size::$width ----> ║
║ ^ *──────────────────────┐ ║
║ | │ title │ ║
║ | ├──────────────────────┤ ║
║ | │ │ ║
║ size::$height │ │ ║
║ | │ contents │ ║
║ | │ │ ║
║ | │ │ ║
║ v └──────────────────────┘ ║
║ ║
║ ║
╚════════════════════════════════════════════════════════════╝
Використовуючи наданий каркас класу, визначте властивості для значень y, x, height та width.
<?php
$window = new ProgramWindow();
$window->y; // => null
$window->x; // => null
$window->height; // => null
$window->width; // => null
Визначте конструктор для ProgramWindow.
Він не повинен приймати жодних аргументів, але під час виконання конструктора встановіть типові значення для його властивостей.
Він повинен встановити початкові значення y та x у 0.
Він повинен встановити початкові height і width відповідно до розміру екрана 600x800.
<?php
$window = new ProgramWindow();
$window->y; // => 0
$window->x; // => 0
$window->height; // => 600
$window->width; // => 800
Визначте новий клас у Size.php для класу Size.
Він повинен приймати аргументи конструктора, щоб встановити властивості height і width.
Крім того, ProgramWindow потребує функції зміни розміру, яка приймає екземпляр обʼєкта Size і оновлює власні властивості.
<?php
$window = new ProgramWindow();
$size = new Size(764, 1080);
$window->resize($size)
$window->height;
// => 764
$window->width;
// => 1080
Визначте новий клас у Position.php для класу Position.
Він повинен приймати аргументи конструктора, щоб встановити властивості y і x.
Крім того, ProgramWindow потребує функції переміщення, яка приймає екземпляр обʼєкта Position і оновлює власні властивості.
<?php
$window = new ProgramWindow();
$position = new Position(80, 313);
$window->move($position)
$window->y;
// => 80
$window->x;
// => 313
Зареєструйтеся на Exercism, щоб вивчати й опановувати PHP, а також 11 концепцій122 вправи та справжнє наставництво від людей, і все це безкоштовно.