Οι κλάσεις είναι μια μονάδα οργάνωσης κώδικα στην 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 ασκήσεις και πραγματική καθοδήγηση από ανθρώπους, όλα δωρεάν.