Manipulatie van objecten in klassen in OOP in PHP
Klassen kunnen objecten van andere klassen als parameters van methoden accepteren en deze objecten manipuleren. Laten we een voorbeeld bekijken. Stel dat we de volgende klasse hebben:
<?php
class User {
private $name;
public function __construct($name) {
$this->name = $name;
}
public function getName() {
return $this->name;
}
}
?>
Stel dat we besloten hebben om een klasse te maken die een reeks objecten met gebruikers zal manipuleren:
<?php
class UsersCollection {
}
?>
We slaan de objecten met gebruikers op als een array in een private eigenschap:
<?php
class UsersCollection {
private $users;
public function __construct() {
$this->users = [];
}
}
?>
Laten we een methode maken om een nieuwe gebruiker aan de array toe te voegen:
<?php
class UsersCollection {
private $users;
public function __construct() {
$this->users = [];
}
public function add($user) {
$this->users[] = $user;
}
}
?>
En laten we nu een methode maken die de namen van alle gebruikers weergeeft:
<?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>';
}
}
}
?>
Laten we de werking van onze klasse bekijken. Laten we eerst een object ervan maken:
<?php
$uc = new UsersCollection();
?>
Laten we nu enkele gebruikers toevoegen aan onze collectie:
<?php
$uc->add(new User('john'));
$uc->add(new User('eric'));
$uc->add(new User('kyle'));
?>
En laten we nu de methode aanroepen die de namen van alle gebruikers weergeeft:
<?php
$uc->show();
?>
Maak een klasse EmployeesCollection,
die een array met werknemers zal bevatten.
Maak in deze klasse een methode om een nieuwe werknemer toe te voegen.
Maak in deze klasse een methode om alle werknemers weer te geven.
Maak in deze klasse een methode voor de berekening van het totale salaris van alle werknemers.
Maak in deze klasse een methode voor de berekening van het gemiddelde salaris van alle werknemers.