Πολλαπλά Traits στη PHP OOP
Σε μια κλάση μπορούν να χρησιμοποιηθούν όχι ένα, αλλά πολλά
traits. Αυτό είναι και το πλεονέκτημά τους
σε σχέση με την κληρονομικότητα. Τα traits που απαιτούνται
για χρήση στην κλάση μπορούν να καθοριστούν διαχωρισμένα με κόμμα
μετά τη λέξη-κλειδί use.
Ας δούμε ένα παράδειγμα. Ας υποθέσουμε ότι έχουμε δύο traits. Το πρώτο:
<?php
trait Helper1
{
private $name;
public function getName()
{
return $this->name;
}
}
?>
Το δεύτερο:
<?php
trait Helper2
{
private $age;
public function getAge()
{
return $this->age;
}
}
?>
Ας χρησιμοποιήσουμε τα traits μας στην κλάση:
<?php
class User
{
use Helper1, Helper2; // συνδέουμε τα traits
public function __construct($name, $age)
{
$this->name = $name;
$this->age = $age;
}
}
?>
Δημιουργήστε 3 traits με ονόματα Trait1,
Trait2 και Trait3. Ας έχει το πρώτο
trait τη μέθοδο method1, που επιστρέφει
1, στο δεύτερο trait - τη μέθοδο method2,
που επιστρέφει 2, και στο τρίτο trait
- τη μέθοδο method3, που επιστρέφει 3.
Ας είναι όλες αυτές οι μέθοδοι ιδιωτικές.
Δημιουργήστε την κλάση Test, που χρησιμοποιεί
και τα τρία traits που δημιουργήσαμε. Δημιουργήστε σε
αυτήν την κλάση μια δημόσια μέθοδο getSum,
που επιστρέφει το άθροισμα των αποτελεσμάτων των μεθόδων των συνδεδεμένων
traits.