⊗ppOpIhCOM 29 of 107 menu

Anrop av överlagrad metod i OOP i PHP

Vid överlagring förlorar barnklassen åtkomst till den överlagrade metoden i föräldern. Men det är fortfarande möjligt att komma åt den. Detta görs med hjälp av nyckelordet parent, som pekar på föräldraklassen.

Låt oss titta på ett exempel när vi kan behöva åtkomst till föräldermetoden. Låt oss säga att vi har följande förälderklass:

<?php class User { private $name; public function setName($name) { $this->name = $name; } public function getName() { return $this->name; } } ?>

Låt oss säga att vi i barnklassen har överlagrat förälderns metod:

<?php class Student extends User { public function setName($name) { if (strlen($name) > 0) { $this->name = $name; } else { echo 'student name error'; } } } ?>

Man kan lägga märke till att i den överlagrade metoden, när villkoret uppfylls, exekveras i princip koden från föräldermetoden. Detta resulterar i onödig kodduplicering.

Vi kan bli av med det genom att anropa föräldermetoden. Låt oss göra det:

<?php class Student extends User { public function setName($name) { if (strlen($name) > 0) { parent::setName($name); // förälderns metod } else { echo 'student name error'; } } } ?>

Följande kod ges:

<?php class User { private $age; public function setAge($age) { if ($age >= 0) { $this->age = $age; } else { echo 'need age more 0'; } } } class Employee extends User { public function setAge($age) { if ($age <= 120) { if ($age >= 0) { $this->age = $age; } else { echo 'need age more 0'; } } else { echo 'need age less 120'; } } } ?>

I klassen Employee ska du förenkla settern för ålder genom att använda förälderns ursprungliga metod.

Svenska
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Vi använder kakor för webbplatsens funktion, analys och personalisering. Behandling av data sker i enlighet med Integritetspolicyn.
acceptera alla anpassa avvisa