Manipulation d'objets dans les classes en POO en PHP
Les classes peuvent accepter des objets d'autres classes en paramètres de leurs méthodes et manipuler ces objets. Regardons un exemple. Supposons que nous ayons la classe suivante :
<?php
class User {
private $name;
public function __construct($name) {
$this->name = $name;
}
public function getName() {
return $this->name;
}
}
?>
Supposons que nous décidions de créer une classe qui manipulera un ensemble d'objets utilisateurs :
<?php
class UsersCollection {
}
?>
Nous stockerons les objets utilisateurs sous forme de tableau dans une propriété privée :
<?php
class UsersCollection {
private $users;
public function __construct() {
$this->users = [];
}
}
?>
Créons une méthode pour ajouter un nouvel utilisateur au tableau :
<?php
class UsersCollection {
private $users;
public function __construct() {
$this->users = [];
}
public function add($user) {
$this->users[] = $user;
}
}
?>
Et maintenant, créons une méthode qui affichera les noms de tous les utilisateurs :
<?php
class UsersCollection {
private $users;
public function __construct() {
$this->users = [];
}
public function add($user) {
$this->users[] = $user;
}
public function show() {
foreach ($this->users as $user) {
echo $user->getName() . '<br>';
}
}
}
?>
Regardons le fonctionnement de notre classe. Commençons par créer son objet :
<?php
$uc = new UsersCollection();
?>
Maintenant, ajoutons à notre collection plusieurs utilisateurs :
<?php
$uc->add(new User('john'));
$uc->add(new User('eric'));
$uc->add(new User('kyle'));
?>
Et maintenant, appelons la méthode qui affichera les noms de tous les utilisateurs :
<?php
$uc->show();
?>
Créez une classe EmployeesCollection,
qui contiendra un tableau d'employés.
Créez dans cette classe une méthode pour ajouter un nouvel employé.
Créez dans cette classe une méthode pour afficher tous les employés.
Créez dans cette classe une méthode pour calculer le salaire total de tous les employés.
Créez dans cette classe une méthode pour calculer le salaire moyen de tous les employés.