Mbinu ya Kichawi toString katika OOP kwenye PHP
Mbinu ya kwanza ya kichawi ambayo tuta
soma, inaitwa __toString.
Inaitwa wakati wa kujaribu kubadilisha mfano wa
darasa kuwa mfuatano. Hebu tuchambue, hii
inamaanisha nini. Hebu tuchukulie tuna darasa
User kama ifuatavyo:
<?php
class User
{
private $name;
private $age;
public function __construct($name, $age)
{
$this->name = $name;
$this->age = $age;
}
public function getName()
{
return $this->name;
}
public function getAge()
{
return $this->age;
}
}
?>
Hebu tuunde kitu cha darasa hili:
<?php
$user = new User('john', 25);
?>
Sasa tujaribu kukionyesha kitu kilichoundwa
kupitia echo:
<?php
$user = new User('john', 25);
echo $user;
?>
Jaribio la kufanya onyesho la kitu kupitia echo
ni ubadilishaji kuwa mfuatano. Katika
kesi hii PHP itatoa hitilafu, kwa sababu
vitu haviwezi kubadilishwa kuwa mfuatano kwa urahisi.
Ili kuondoa hitilafu, tunapaswa
kumwambia PHP waziwazi, nini cha kufanya
wakati wa kujaribu kubadilisha kitu kuwa mfuatano. Kwa
hiyo ndio ipo mbinu ya kichawi
__toString.
Ikiwa tutafanya mbinu kama hiyo katika msimbo wa darasa letu,
basi matokeo ya mbinu hiyo (yaani kile
atarudisha kupitia return) ndio kitakuwa mfuatano
unaowakilisha kitu.
Hebu tuchukulie tunataka, ili wakati wa kujaribu kuonyesha
kitu kupitia echo, ionyeshe jina la
mtumiaji. Kwa hiyo tutatengeneza mbinu __toString
na kurudisha ndani yake thamani ya sifa name:
<?php
class User
{
private $name;
private $age;
public function __construct($name, $age)
{
$this->name = $name;
$this->age = $age;
}
// Tutekeleze mbinu iliyobainishwa:
public function __toString()
{
return $this->name;
}
public function getName()
{
return $this->name;
}
public function getAge()
{
return $this->age;
}
}
?>
Hebu tuangalie:
<?php
$user = new User('john', 25);
echo $user; // itaonyesha 'john' - yote yanafanya kazi!
?>
Tengeneza darasa User, ambamo itakuwa
na sifa name na surn.
Fanya hivi, ili
onyesho la kitu kupitia echo kwenye skrini
ionyeshe mfuatano wenye jina na jina la ukoo la mtumiaji.