Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗ppOpIhCOM 29 of 107 menu
◀ ▶

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 синфида ёш сеттерини соддалаштиринг, ота-онанинг асл методидан фойдаланиб.

← →
↑
Ўзбек▼
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeOʻzbekTiếng Việt
Биз веб-сайт ишлаши, таҳлил қилиш ва персоналлаштириш учун кукидан фойдаланамиз. Маълумотларни қайта ишлаш Махфийлик сиёсатига мувофиқ амалга оширилади.
ҳаммасини қабул қилиш мослаштириш рад этиш