Ծնողի մեթոդների վերասահմանումը OOP-ում PHP-ում
Ենթադասը կարող է վերասահմանել ծնողի մեթոդը՝ ստեղծելով նույնանուն մեթոդ: Եկեք նայենք օրինակով: Ենթադրենք, մենք ունենք հետևյալ ծնողական դասը:
<?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) {
}
}
?>
Որպես կանոն, ծնողի մեթոդների վերասահմանումը անհրաժեշտ է այդ մեթոդի վարքագիծը փոխելու կամ լրացնելու համար: Եկեք մեր դեպքում ավելացնենք անվան երկարության ստուգում.
<?php
class Student extends User {
public function setName($name) {
if (strlen($name) > 0) {
$this->name = $name;
} else {
echo 'student name error';
}
}
}
?>
Եկեք համոզվենք, որ կանչվում է հենց վերասահմանված մեթոդը: Սկզբում ստեղծենք ենթադասի օբյեկտ.
<?php
$student = new Student;
?>
Այժմ կանչենք մեր մեթոդը՝ նրան փոխանցելով ճիշտ արժեք.
<?php
$student->setName('john');
?>
Այժմ կանչենք մեթոդը՝ փոխանցելով նրան սխալ արժեք: Արդյունքում կտեսնենք դուրս նետված բացառություն.
<?php
$student->setName(''); // սխալ
?>
User դասում ստեղծեք
tառքի և դրա արժեքը սահմանող մեթոդ տարիքի համար։
Employee դասում վերասահմանեք
tարիքի համար դրա արժեքը սահմանող մեթոդը և դրա մեջ
ստուգեք, որ տարիքը
18-ից 65 տարեկան է։