Junior
Чӣ тавр васеъ кардан (extend) дар контексти PHP?
sobes.tech AI
Ҷавоб аз AI
PHPда кеңейиш ёки мерос олиш механизми, бир синф (ёш ва ёки мерос олувчи синф) бошқа бир синфнинг (ота ёки асосий синф) хусусиятлари ва методларини мерос қилиб олиш имконини беради.
extends калит сўзи ота синфини кўрсатиш учун ишлатилади.
Мерос олишнинг афзаллиги:
- Кодни қайта ишлатиш: Бир хил кодни бир неча марта ёзиш шарт эмас.
- Кенгайтириш: Ёш синф янги хусусиятлар ва методлар қўшиши ёки мавжудларини қайтадан ёзиш мумкин.
- Полиморфизм: Турли синфлар объектлари умумий ота синф сифатида ишлатилиши мумкин.
Масалан:
<?php
class Animal {
public function eat() {
echo "Жонивор ёки.";
}
}
class Dog extends Animal {
public function bark() {
echo "Эт ҳулкади.";
}
}
$dog = new Dog();
$dog->eat(); // Ота синф методини чақириш
$dog->bark(); // Ёш синф методини чақириш
?>
Ёш синф қуйидагиларни мерос олмайди:
- Хусусий хусусиятлар ва методлар (ҳол улар объектда мавжуд бўлса-да, уларни тўғридан-тўғри ёш синфдан чақириш мумкин эмас).
- Ота синфнинг конструктори автоматик равишда чақирилмайди, агар бу аниқ кўрсатилмаса
parent::__construct()ёрдамида.