Конструктор дар меросии дар ООП дар PHP
Дар вақти мерос гирифтан метавон конструктори волидайнро аз нав танзим кард. Биёед дар мисол бубинем. Фарз кунем, ки мо синфи волидайни зеринро дорем:
<?php
class User {
private $name;
private $surn;
public function __construct($name, $surn) {
$this->name = $name;
$this->surn = $surn;
}
public function getName() {
return $this->name;
}
public function getSurn() {
return $this->surn;
}
}
?>
Фарз кунем, ки аз синфи волидайн синфи зерин мерос мегирад:
<?php
class Student extends User {
}
?>
Фарз кунем, ки мо мехоҳем дар синфи фарзанд конструкторро васеъ кунем, параметрҳои иловагиро ба он илова кунем:
<?php
class Student extends User {
private $year;
public function __construct($name, $surn, $year) {
}
}
?>
Дар ин ҳолат ба мо ҳатман дар сатри якум лозим аст,
ки конструктори волидайнро тавассути parent::__construct() фаро бихонем:
<?php
class Student extends User {
private $year;
public function __construct($name, $surn, $year) {
parent::__construct($name, $surn);
}
}
?>
Фармони parent::__construct() аслан конструктори
волидайн мебошад. Аз ин рӯ
параметрҳои талабшавандаро ба он мефиристем:
<?php
class Student extends User {
private $year;
public function __construct($name, $surn, $year) {
parent::__construct($name, $surn);
}
}
?>
Ҳоло дар фарзанд соли таҳсилро дар хосияти худои фарзанд сабт мекунем:
<?php
class Student extends User {
private $year;
public function __construct($name, $surn, $year) {
parent::__construct($name, $surn);
$this->year = $year;
}
}
?>
Барои соли таҳсил геттер месозем:
<?php
class Student extends User {
private $year;
public function __construct($name, $surn, $year) {
parent::__construct($name, $surn);
$this->year = $year;
}
public function getYear() {
return $this->year;
}
}
?>
Фарз кунем, ки синфи Employee аз синфи
User аз ин дарс мерос мегирад.
Дар синфи Employee конструктори волидайнро аз нав танзим кунед, параметри синну сол ва маоширо ба он илова кунед.
Барои синну сол ва маош геттерҳо созед.