Az osztályok a kódszervezés alapegységei a PHP-ben.
Az olyan kód, amely egy dolog vagy egy folyamat viselkedését írja le, egy osztályba csoportosítható.
A konvenció szerint az osztályhoz rendelt függvényeket methods néven nevezzük.
<?php
class Door
{
function lock()
{
// ...
}
function unlock()
{
// ...
}
}
Az osztályokat a new kulcsszóval példányosítjuk; ez memóriát foglal az osztálypéldány számára, és meghívja az osztály konstruktor metódusát.
A példányosított osztályokat hozzárendelhetjük egy változóhoz.
Egy osztálypéldány metódusainak meghívásához a -> hozzáférési operátort használhatjuk.
<?php
$a_door = new Door();
$a_door->lock();
$a_door->unlock();
Egy példányosított osztály a saját példányára a különleges $this változóval hivatkozhat.
Az osztályoknak tulajdonságaik is lehetnek; ezek az osztályobjektum példányához kötött változókként viselkednek.
Ezekre a tulajdonságokra kívülről és belülről is hivatkozhatunk.
<?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
Ebben a feladatban egy ablakkezelésen alapuló számítógépes rendszert fogsz szimulálni. Létrehozol majd néhány ablakot, amelyek mozgathatók és átméretezhetők. A következő ábra szemlélteti azokat az értékeket, amelyekkel az alábbiakban dolgozni fogsz.
╔════════════════════════════════════════════════════════════╗
║ ║
║ position::$y,_ ║
║ position::$x \ ║
║ \<---- size::$width ----> ║
║ ^ *──────────────────────┐ ║
║ | │ title │ ║
║ | ├──────────────────────┤ ║
║ | │ │ ║
║ size::$height │ │ ║
║ | │ contents │ ║
║ | │ │ ║
║ | │ │ ║
║ v └──────────────────────┘ ║
║ ║
║ ║
╚════════════════════════════════════════════════════════════╝
A megadott osztályváz felhasználásával hozd létre a y, x, height és width értékekhez tartozó tulajdonságokat.
<?php
$window = new ProgramWindow();
$window->y; // => null
$window->x; // => null
$window->height; // => null
$window->width; // => null
Definiálj egy konstruktorfüggvényt a ProgramWindow osztályhoz.
Nem szabad argumentumot fogadnia, de a konstruktor futása során állítsd be a tulajdonságai alapértelmezett értékeit.
A kezdeti y és x értékét állítsd 0-ra.
A kezdeti height és width értékét pedig egy 600x800-as képernyőméretre.
<?php
$window = new ProgramWindow();
$window->y; // => 0
$window->x; // => 0
$window->height; // => 600
$window->width; // => 800
Definiálj egy új Size osztályt a Size.php fájlban.
A konstruktorának argumentumként kell megkapnia a height és width tulajdonságok értékét.
Ezenkívül a ProgramWindow-nak szüksége van egy átméretező függvényre, amely megkapja a Size objektum példányát, és frissíti a saját tulajdonságait.
<?php
$window = new ProgramWindow();
$size = new Size(764, 1080);
$window->resize($size)
$window->height;
// => 764
$window->width;
// => 1080
Definiálj egy új Position osztályt a Position.php fájlban.
A konstruktorának argumentumként kell megkapnia a y és x tulajdonságok értékét.
Ezenkívül a ProgramWindow-nak szüksége van egy mozgató függvényre, amely megkapja a Position objektum példányát, és frissíti a saját tulajdonságait.
<?php
$window = new ProgramWindow();
$position = new Position(80, 313);
$window->move($position)
$window->y;
// => 80
$window->x;
// => 313
Iratkozz fel az Exercism-re, hogy megtanuld és elsajátítsd a(z) PHP nyelvet 11 fogalom122 feladat segítségével, valódi emberi mentorálással, mindez ingyen.