352 of 410 menu

Mbinu __call

Mbinu __call ni mbinu ya kichawi katika PHP, ambayo huitwa kiotomatiki wakati wa kujaribu kumtumia mbinu isiyopo au isiyopatikana ya darasa. Inakubua parameta ya kwanza kama jina la mbinu iliyotumiwa, ya pili - safu ya hoja.

Syntax

public function __call(string $name, array $arguments) { // utekelezaji }

Mfano

Tutundue darasa lenye mbinu __call, ambayo itakamata wito wote wa mbinu zisizopo:

<?php class Test { public function __call($name, $args) { echo "Mbinu iliyotumiwa: " . $name . "\n"; echo "Hoja: "; print_r($args); } } $test = new Test(); $test->nonExistentMethod('a', 'b', 123); ?>

Matokeo ya kutekeleza kodi:

Mbinu iliyotumiwa: nonExistentMethod Hoja: ['a', 'b', 123]

Mfano

Tutekeleze kiweka wito rahisi wa mbinu kwa kutumia __call:

<?php class Calculator { public function add($a, $b) { return $a + $b; } } class Math { private $calculator; public function __construct() { $this->calculator = new Calculator(); } public function __call($name, $args) { if (method_exists($this->calculator, $name)) { return call_user_func_array( [$this->calculator, $name], $args ); } throw new Exception("Mbinu $name haipatikani"); } } $math = new Math(); echo $math->add(2, 3); ?>

Matokeo ya kutekeleza kodi:

5

Angalia pia

  • mbinu __callStatic,
    ambayo inakamata wito wa mbinu tuli
  • mbinu __get,
    ambayo inakamata marejeo kwa sifa zisizopo
Kiswahili
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Tunatumia kuki kwa ajili ya uendeshaji wa tovuti, uchambuzi na ubinafsishaji. Usindikaji wa data unafanyika kulingana na Sera ya Faragha.
kubali yote sanidi kataa