Ann am PHP, tha mion-atharraichean ruigsinneachd nam pàirt chudromach de phrògramadh a tha ag amas air nithean (OOP). Bidh iad a’ sònrachadh farsaingeachd caochladairean clas no dòighean-obrach agus mar a gheibhear thuca. Anns an dreuchd seo, bheir sinn sùil air na diofar sheòrsaichean de luchd-atharrachaidh ruigsinneachd ann am PHP agus bheir sinn eisimpleirean air mar a chleachdas tu iad.
Seòrsaichean atharrachaidh ruigsinneachd ann am PHP
Ann am PHP, tha luchd-atharrachaidh ruigsinneachd air an seòrsachadh mar poblach, prìobhaideach no dìon.
- Poblach: Faodar faighinn gu modh no feart a tha air a shuidheachadh don phoball anns a h-uile àite. Is e seo am mion-atharrachadh ruigsinneachd bunaiteach ann am PHP.
- Prìobhaideach: Chan fhaighear cothrom air modh no feart a tha suidhichte gu prìobhaideach ach taobh a-staigh a’ chlas anns a bheil e air a chruthachadh.
- Dìon: Faodar faighinn gu modh no feart a tha air a dhìon taobh a-staigh a 'chlas anns a bheil e air a chruthachadh, a bharrachd air ann an clasaichean a tha a' sealbhachadh bhon chlas sin.
eisimpleirean
class Person{
public $name;
protected $age;
private $height;
}
$x= new Person();
$x->name = 'John'; // OK
$x->age= '32'; // ERROR
$x->height= '5.4'; // ERROR
Anns an eisimpleir gu h-àrd, bidh sinn a’ mìneachadh clas “Duine” le trì buadhan, gach fear le inneal-atharrachaidh ruigsinneachd air leth. Tha am feart “ainm” poblach, tha am feart “aois” air a dhìon, agus tha am feart “àirde” prìobhaideach. Nuair a dh’ fheuchas sinn ri faighinn chun fheart “ainm” taobh a-muigh a’ chlas agus luach a chur ris, bidh a h-uile dad ag obair gu math. Ach, le bhith a’ feuchainn ri luachan a chur ris na togalaichean “aois” agus “àirde” taobh a-muigh a’ chlas thig mearachd marbhtach.
Dòighean Poblach, Prìobhaideach agus Dìon
class Person{
public $name;
public $age;
public $height;
function set_name($n) { // a public function (default)
$this->name = $n;
}
protected function set_age($a) { // a protected function
$this->age = $a;
}
private function set_height($h) { // a private function
$this->height = $h;
}
}
$person = new Person();
$person->set_name('John'); // OK
$person->set_age('26'); // ERROR
$person->set_height('5.4'); // ERROR
Anns an eisimpleir gu h-àrd, bidh sinn a’ togail clas “Duine” le trì dòighean, gach fear le inneal-atharrachaidh ruigsinneachd air leth. Tha an dòigh “ainm suidhichte” poblach, tha an dòigh “aois stèidhichte” air a dhìon, agus tha an dòigh “àirde suidhichte” prìobhaideach. Nuair a dh’ fheuchas sinn ris a’ ghnìomh “ainm suidhichte” a chuir a-steach bho thaobh a-muigh a’ chlas, tha e ag obair gu math. Nuair a dh’ fheuchas sinn ris na dòighean “aois shuidhichte” agus “àirde suidhichte” a ghairm bho thaobh a-muigh a’ chlas, gheibh sinn mearachd marbhtach.
Mion-atharraichean ruigsinneachd adhartach: Geàrr-chunntas agus Deireannach
Tha PHP a’ toirt seachad atharraichean ruigsinneachd sòlaimte leis an t-ainm “abstract” agus “deireannach” a bharrachd air na mion-atharraichean ruigsinneachd cunbhalach.
- Chan urrainnear inneal-atharrachaidh ruigsinneachd eas-chruthach a chleachdadh ach air clasaichean agus dòighean. Tha e air a chleachdadh gus plana clas a thogail, ach chan urrainnear an clas a chuir air adhart sa bhad. Is e dòighean abstract dòighean a dh’ fheumas a h-uile clas a gheibh bhon chlas eas-chruthach a chuir an gnìomh.
- Faodaidh clasaichean, dòighean agus feartan uile mion-atharrachadh ruigsinneachd deireannach a thoirt seachad. Tha e air a chleachdadh gus casg a chuir air clas no dòigh bho bhith air a leudachadh no air a dhol thairis air.
eisimpleirean
abstract class Bike {
private $maxSpeed = 80;
// Simple method
public function drivingSpeed() {
return "Driving at " . $this->maxSpeed . " kilometer/hour";
}
// Abstract method
abstract public function drive();
}
class Police extends Bike {
public function drive() {
return "Driving out of speed limit.";
}
}
$bike= new Police();
echo $bike->drivingSpeed();
Anns an eisimpleir gu h-àrd, bidh sinn a 'togail a eas-chruthach clas leis an ainm “Bike” aig a bheil gnìomh eas-chruthach ris an canar “drive()”. Bidh sinn an uairsin a’ togail clas ùr leis an t-ainm “Poileas,” a tha a ’leudachadh an clas “Bike” agus a’ cur an gnìomh an gnìomh “drive()”. Bidh sinn a’ cleachdadh clas “Poileas” an àite sin oir chan urrainn dhuinn rud den chlas eas-chruthach a thogail.
Mu dheireadh, tha mion-atharraichean ruigsinneachd nam pàirt chudromach de OOP ann am PHP agus tha iad air an cleachdadh gus farsaingeachd caochladairean no gnìomhan clas a chuingealachadh. Faodaidh tuigse agus cleachdadh èifeachdach air luchd-atharrachaidh ruigsinneachd do chuideachadh le bhith a’ leasachadh còd nas tèarainte agus nas seasmhaiche.
Q&A
C: Dè a th’ ann an luchd-atharrachaidh ruigsinneachd?
F: Bidh luchd-atharrachaidh ruigsinneachd a’ mìneachadh farsaingeachd caochladairean no modhan clas, a bharrachd air far am faighear iad. Ann am PHP, tha luchd-atharrachaidh ruigsinneachd air an seòrsachadh mar poblach, prìobhaideach no dìon.
C: Dè am mion-atharrachadh ruigsinneachd bunaiteach?
F: Tha am mion-atharrachadh ruigsinneachd bunaiteach aig PHP poblach. Mura toir thu seachad am mion-atharrachaidh ruigsinneachd fhad ‘s a tha thu a’ cruthachadh modh no feart ann an clas PHP, thèid a chuir gu poblach gu bunaiteach.
C: Dè an diofar eadar luchd-atharrachaidh ruigsinneachd prìobhaideach agus dìonta?
F: Is dòcha nach bi dòigh no feart prìobhaideach ruigsinneach ach taobh a-staigh a’ chlas a chruthaich e, ach faodar faighinn gu modh no feart dìonta taobh a-staigh a’ chlas a chruthaich e a bharrachd air na clasaichean a shealbhaich bhon chlas sin.
C: An urrainn dhut eisimpleir a thoirt seachad air a bhith a’ cleachdadh inneal-atharrachaidh ruigsinneachd eas-chruthach ann am PHP?
abstract class Bike {
private $maxSpeed = 80;
abstract public function drive();
}
class Police extends Bike {
public function drive() {
return "Driving out of speed limit.";
}
}
Anns an eisimpleir gu h-àrd, bidh sinn a’ togail clas eas-chruthach leis an t-ainm “Bike” aig a bheil gnìomh eas-chruthach ris an canar “drive()”. Bidh sinn an uairsin a’ togail clas ùr leis an t-ainm “Poileas,” a leudaicheas an clas “Bike” agus a chuireas an gnìomh “drive()”. Bidh sinn a’ cleachdadh clas “Poileas” an àite sin oir chan urrainn dhuinn rud den chlas eas-chruthach a thogail.
C: Ciamar a tha am mion-atharrachaidh ruigsinneachd deireannach ag obair?
F: Faodar am mion-atharrachaidh ruigsinneachd deireannach a chuir an sàs ann an clasaichean, dòighean-obrach agus feartan. Tha e air a chleachdadh gus casg a chuir air clas bho bhith air a leudachadh no dòigh-obrach bho bhith air a thoirt thairis. Tha seo a’ ciallachadh nach urrainnear clas sam bith a gheibh sealbh bho chlas mu dheireadh a leudachadh, agus chan urrainnear a dhol thairis air dòigh sam bith a tha air a chomharrachadh mar dheireannach.
Eacarsaichean:
- Dè am mion-atharrachadh ruigsinneachd bunaiteach ann am PHP?
- Dè an diofar eadar atharraichean ruigsinneachd prìobhaideach agus dìonta ann am PHP?
- Thoir eisimpleir de bhith a’ cleachdadh inneal-atharrachaidh ruigsinneachd eas-chruthach ann am PHP.
- Ciamar a tha am mion-atharrachaidh ruigsinneachd deireannach ag obair?
- An urrainn dhut rud de chlas eas-chruthach a chruthachadh? Carson neo carson?
- An urrainn dhut dòigh dheireannach ann an clas cloinne a dhubhadh às? Carson neo carson?
- An urrainn dhut luach a shònrachadh do fheart prìobhaideach taobh a-muigh a’ chlas anns a bheil e air a chruthachadh? Carson neo carson?
- An gabh modh dìon a chleachdadh taobh a-muigh a’ chlas anns a bheil e air a chruthachadh? Carson neo carson?
Freagairtean:
- Tha am mion-atharrachadh ruigsinneachd bunaiteach ann am PHP poblach.
- Chan fhaighear cothrom air modh no feart prìobhaideach ann am PHP ach taobh a-staigh a’ chlas anns a bheil e air a chruthachadh, ach gheibhear gu modh no feart dìonta taobh a-staigh a’ chlas anns a bheil e air a chruthachadh, a bharrachd air ann an clasaichean a tha a’ sealbhachadh bhon chlas sin.
abstract class Bike {
private $maxSpeed = 80;
abstract public function drive();
}
class Police extends Bike {
public function drive() {
return "Driving out of speed limit.";
}
}
4. Faodar am mion-atharrachaidh ruigsinneachd deireannach a chuir an sàs ann an clasaichean, dòighean-obrach agus feartan. Tha e air a chleachdadh gus casg a chuir air clas bho bhith air a leudachadh no dòigh-obrach bho bhith air a thoirt thairis.
5. Chan e, chan urrainn dhuinn nì de chlas eas-chruthach a chruthachadh a chionn 's gu bheil clas eas-chruthach mar phlana airson clasaichean eile agus chan eil neach-togail aige gus nì a chruthachadh.
6. Chan urrainn, chan urrainn dhuinn dòigh dheireannach a chur an dàrna taobh ann an clas chloinne oir tha e air a chomharrachadh mar dheireannach agus chan urrainnear a dhol thairis air.
7. Chan e, chan urrainn dhuinn luach a thoirt do bhuadhan prìobhaideach taobh a-muigh a' chlas a chruthaich e oir chan eil am feart ri fhaighinn ach taobh a-staigh a' chlas.
8. Chan e, chan urrainn dòigh dìon a bhith ruigsinneach taobh a-muigh a' chlas a chruthaich e, ach faodar faighinn thuige le clasaichean a thig bhon chlas sin.