Objektide manipuleerimine klassides OOP-s PHP-s
Klassid võivad meetodite parameetritena võtta teiste klasside objekte ja neid objekte manipuleerida. Vaatame seda näite varal. Olgu meil järgmine klass:
<?php
class User {
private $name;
public function __construct($name) {
$this->name = $name;
}
public function getName() {
return $this->name;
}
}
?>
Oletame, et otsustasime teha klassi, mis manipuleerib koguga kasutajaobjektidest:
<?php
class UsersCollection {
}
?>
Hoiame kasutajaobjekte privaatse omadusena massiivis:
<?php
class UsersCollection {
private $users;
public function __construct() {
$this->users = [];
}
}
?>
Teeme meetodi uue kasutaja lisamiseks massiivi:
<?php
class UsersCollection {
private $users;
public function __construct() {
$this->users = [];
}
public function add($user) {
$this->users[] = $user;
}
}
?>
Ja nüüd teeme meetodi, mis väljastab kõikide kasutajate nimed:
<?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>';
}
}
}
?>
Vaatame meie klassi töötamist. Alustuseks loome selle objekti:
<?php
$uc = new UsersCollection();
?>
Nüüd lisame meie kogusse mõne kasutaja:
<?php
$uc->add(new User('john'));
$uc->add(new User('eric'));
$uc->add(new User('kyle'));
?>
Ja nüüd kutsume välja meetodi, mis väljastab kõikide kasutajate nimed:
<?php
$uc->show();
?>
Tehke klass EmployeesCollection,
mis sisaldab töötajate massiivi.
Tehke selles klassis meetod uue töötaja lisamiseks.
Tehke selles klassis meetod kõikide töötajate väljastamiseks.
Tehke selles klassis meetod kõikide töötajate summaarse palga arvutamiseks.
Tehke selles klassis meetod kõikide töötajate keskmise palga arvutamiseks.