Manipularea obiectelor în clase în OOP în PHP
Clasele ca parametri ai metodelor pot primi obiecte ale altor clase și să manipuleze aceste obiecte. Să vedem un exemplu. Să presupunem că avem următoarea clasă:
<?php
class User {
private $name;
public function __construct($name) {
$this->name = $name;
}
public function getName() {
return $this->name;
}
}
?>
Să presupunem că am decis să facem o clasă, care va manipula un set de obiecte cu utilizatori:
<?php
class UsersCollection {
}
?>
Vom stoca obiectele cu utilizatori sub formă de matrice în proprietatea privată:
<?php
class UsersCollection {
private $users;
public function __construct() {
$this->users = [];
}
}
?>
Să facem o metodă pentru adăugarea unui nou utilizator în matrice:
<?php
class UsersCollection {
private $users;
public function __construct() {
$this->users = [];
}
public function add($user) {
$this->users[] = $user;
}
}
?>
Și acum să facem o metodă care va afișa numele tuturor utilizatorilor:
<?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>';
}
}
}
?>
Să vedem funcționarea clasei noastre. Mai întâi să creăm obiectul său:
<?php
$uc = new UsersCollection();
?>
Acum să adăugăm în colecția noastră câțiva utilizatori:
<?php
$uc->add(new User('john'));
$uc->add(new User('eric'));
$uc->add(new User('kyle'));
?>
Și acum să apelăm metoda care va afișa numele tuturor utilizatorilor:
<?php
$uc->show();
?>
Creați clasa EmployeesCollection,
care va conține o matrice de angajați.
Faceți în această clasă o metodă pentru adăugarea unui nou angajat.
Faceți în această clasă o metodă pentru afișarea tuturor angajaților.
Faceți în această clasă o metodă pentru calcularea salariului total al tuturor angajaților.
Faceți în această clasă o metodă pentru calcularea salariului mediu al tuturor angajaților.