Objektumok manipulálása osztályokban az OOP-ban PHP-ben
Az osztályok metódusai paraméterként fogadhatnak más osztályok objektumait és manipulálhatják ezeket az objektumokat. Nézzünk egy példát. Tegyük fel, hogy a következő osztályunk van:
<?php
class User {
private $name;
public function __construct($name) {
$this->name = $name;
}
public function getName() {
return $this->name;
}
}
?>
Tegyük fel, hogy úgy döntöttünk, készítünk egy osztályt, amely a felhasználói objektumok egy gyűjteményét fogja kezelni:
<?php
class UsersCollection {
}
?>
A felhasználói objektumokat tároljuk egy privát tulajdonságban, mint egy tömb:
<?php
class UsersCollection {
private $users;
public function __construct() {
$this->users = [];
}
}
?>
Készítsünk egy metódust egy új felhasználó hozzáadására a tömbhöz:
<?php
class UsersCollection {
private $users;
public function __construct() {
$this->users = [];
}
public function add($user) {
$this->users[] = $user;
}
}
?>
Most készítsünk egy metódust, amely kiírja az összes felhasználó nevét:
<?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>';
}
}
}
?>
Nézzük meg osztályunk működését. Először hozzunk létre egy objektumot belőle:
<?php
$uc = new UsersCollection();
?>
Most adjunk hozzá néhány felhasználót a gyűjteményünkhöz:
<?php
$uc->add(new User('john'));
$uc->add(new User('eric'));
$uc->add(new User('kyle'));
?>
És most hívjuk meg a metódust, amely kiírja az összes felhasználó nevét:
<?php
$uc->show();
?>
Készítsen egy EmployeesCollection osztályt,
amely a dolgozók tömbjét fogja tartalmazni.
Készítsen ebben az osztályban egy metódust új dolgozó hozzáadására.
Készítsen ebben az osztályban egy metódust az összes dolgozó kilistázására.
Készítsen ebben az osztályban egy metódust az összes dolgozó összfizetésének kiszámítására.
Készítsen ebben az osztályban egy metódust az összes dolgozó átlagfizetésének kiszámítására.