Ծնողի վերասահմանված մեթոդի կանչը OOP-ում PHP-ում
Վերասահմանելիս ժառանգը կորցնում է
մուտքը ծնողի վերասահմանված մեթոդին:
Սակայն, դրան հասնելը միևնույն է հնարավոր է:
Սա արվում է օգտագործելով parent
բանալի բառը, որն ցույց է տալիս ծնողական
դասի վրա:
Դիտարկենք օրինակ, երբ մեզ կարող է անհրաժեշտ լինել մուտք ծնողի մեթոդին: Ենթադրենք, մենք ունենք հետևյալ ծնողական դասը:
<?php
class User {
private $name;
public function setName($name) {
$this->name = $name;
}
public function getName() {
return $this->name;
}
}
?>
Ենթադրենք, մենք ժառանգ դասում վերասահմանել ենք ծնողի մեթոդը:
<?php
class Student extends User {
public function setName($name) {
if (strlen($name) > 0) {
$this->name = $name;
} else {
echo 'student name error';
}
}
}
?>
Նկատելի է, որ վերասահմանված մեթոդում պայմանի կատարման դեպքում փաստացի կատարվում է ծնողի մեթոդի կոդը: Ստացվում է կոդի ավելորդ կրկնօրինակում:
Կարելի է ազատվել դրանից, եթե կանչել ծնողի մեթոդը: Եկեք անենք դա:
<?php
class Student extends User {
public function setName($name) {
if (strlen($name) > 0) {
parent::setName($name); // ծնողի մեթոդը
} else {
echo 'student name error';
}
}
}
?>
Տրված է հետևյալ կոդը:
<?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';
}
}
}
?>
Employee դասում ուղղեք
պարզեցրեք տարիքի սետտերը, օգտագործելով
ծնողի օրիգինալ մեթոդը: