⊗ppOpIfPm 69 of 107 menu

PHP да ООП да интерфейс методларининг параметрлари

Интерфейсларда методларни тасвирлашда фақат методларнинг номларигина эмас, балки улар қабул қиладиган параметрларни ҳам кўрсатиш зарур.

Келинг, мисолда кўрамиз. Бизда iMath интерфейси мавжуд бўлиб, у қўшиш, айириш, кўпайтириш ва бўлиш математик амаллари учун классни тасвирласин. Бу интерфейс quyidagicha кўринишда бўлсин:

<?php interface iMath { public function sum(); public function subtract(); public function multiply(); public function divide(); } ?>

Ҳозир бизнинг интерфейс методларимиз ҳеч қандай параметрларни қабул қилмайди. Ва аслида, бу интерфейсни амалга оширадиган класс методлари ҳам параметрларни қабул қилмаслиги керак, акс ҳолда хатолик юз беради.

Келинг, интерфейсимизда методларнинг параметрларини кўрсатамиз:

<?php interface iMath { public function sum($a, $b); public function subtract($a, $b); public function multiply($a, $b); public function divide($a, $b); } ?>

Энди бизнинг интерфейсимизнинг амалга оширилишини ёзайлик:

<?php class Math implements iMath { public function sum($a, $b) { return $a + $b; } public function subtract($a, $b) { return $a - $b; } public function multiply($a, $b) { return $a * $b; } public function divide($a, $b) { return $a / $b; } } ?>

Агар бизнинг классимзда бошқача параметрлар сонини белгилашга ҳаракат қилсак - бу иш оммас: PHP хатолик берadi. Шу тариқа, биз бирон параметрни асоссиз унутиб қўйишимиз ҳам, бирон ортиқча параметр қўшиб юборишимиз ҳам мумкин эмас.

Бизда quyidagi iUser интерфейси мавжуд бўлсин:

<?php interface iUser { public function setName($name); public function getName(); public function setAge($age); public function getAge(); } ?>

User классини яратинг, ушбу интерфейсни амалга оширсин.

Ўзбек
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
Биз веб-сайт ишлаши, таҳлил қилиш ва персоналлаштириш учун кукидан фойдаланамиз. Маълумотларни қайта ишлаш Махфийлик сиёсатига мувофиқ амалга оширилади.
ҳаммасини қабул қилиш мослаштириш рад этиш