Ubadilishaji wa Vitu katika Madarasa katika OOP kwa PHP
Madarasa yanaweza kukubali vitu vya madarasa mengine kama vigezo vya mbinu zao na kuyabadilisha hivi vitu. Hebu tuangalie kwa mfano. Tuchukulie tuna darasa lifuatalo:
<?php
class User {
private $name;
public function __construct($name) {
$this->name = $name;
}
public function getName() {
return $this->name;
}
}
?>
Tuchukulie tumeamua kutengeneza darasa, ambalo litabadilisha msururu wa vitu vya watumiaji:
<?php
class UsersCollection {
}
?>
Tutaweka vitu vya watumiaji kwa mfumo wa safu katika siri ya kibinafsi:
<?php
class UsersCollection {
private $users;
public function __construct() {
$this->users = [];
}
}
?>
Tutengeneze mbinu ya kuongeza mtumiaji mpya kwenye safu:
<?php
class UsersCollection {
private $users;
public function __construct() {
$this->users = [];
}
public function add($user) {
$this->users[] = $user;
}
}
?>
Sasa tutengeneze mbinu ambayo itaonyesha majina ya watumiaji wote:
<?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>';
}
}
}
?>
Hebu tuangalie utendakazi wa darasa letu. Kwanza tuunde kitu chake:
<?php
$uc = new UsersCollection();
?>
Sasa tuongeze kwenye mkusanyiko wetu watumiaji kadhaa:
<?php
$uc->add(new User('john'));
$uc->add(new User('eric'));
$uc->add(new User('kyle'));
?>
Sasa tuite mbinu ambayo itaonyesha majina ya watumiaji wote:
<?php
$uc->show();
?>
Tengeneza darasa EmployeesCollection,
ambalo litakuwa na safu ya wafanyikazi.
Tengeneza katika darasa hili mbinu ya kuongeza mfanyakazi mpya.
Tengeneza katika darasa hili mbinu ya kuonyesha wafanyikazi wote.
Tengeneza katika darasa hili mbinu ya kukokotoa jumla ya mishahara ya wafanyikazi wote.
Tengeneza katika darasa hili mbinu ya kukokotoa mishahara ya wastani ya wafanyikazi wote.