352 of 410 menu

__call әдісі

__call әдісі PHP-тегі сиқырлы әдіс болып табылады, ол кластағы жоқ немесе қол жетімсіз әдіске жүгіну әрекеті кезінде автоматты түрде шақырылады. Ол бірінші параметр ретінде шақырылатын әдістің атауын, екінші параметр ретінде аргументтер жиынын қабылдайды.

Синтаксис

public function __call(string $name, array $arguments) { // іске асыру }

Мысал

__call әдісі бар класс жасайық, ол барлық жоқ әдістердің шақыруларын қарайды:

<?php class Test { public function __call($name, $args) { echo "Шақырылған әдіс: " . $name . "\n"; echo "Аргументтер: "; print_r($args); } } $test = new Test(); $test->nonExistentMethod('a', 'b', 123); ?>

Кодты орындау нәтижесі:

Шақырылған әдіс: nonExistentMethod Аргументтер: ['a', 'b', 123]

Мысал

__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("$name әдісі табылмады"); } } $math = new Math(); echo $math->add(2, 3); ?>

Кодты орындау нәтижесі:

5

Сондай-ақ қараңыз

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