352 of 410 menu

__call metodu

__call metodu PHP-də sehrli metod olub, klasın mövcud olmayan və ya əlçatmaz metoduna müraciət cəhdi zamanı avtomatik çağırılır. O, birinci parametrdə çağırılan metodun adını, ikinci parametrdə isə arqumentlər massivini qəbul edir.

Sintaksis

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

Nümunə

Gəlin __call metodu olan bir klas yaradaq, hansı ki, bütün mövcud olmayan metod çağırışlarını interception edəcək:

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

Kodun icrasının nəticəsi:

Called method: nonExistentMethod Arguments: ['a', 'b', 123]

Nümunə

Gəlin __call vasitəsilə sadə metod delegatoru realizasiya edək:

<?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("Method $name not found"); } } $math = new Math(); echo $math->add(2, 3); ?>

Kodun icrasının nəticəsi:

5

Həmçinin bax

  • __callStatic metodu,
    hansı ki, statik metod çağırışlarını interception edir
  • __get metodu,
    hansı ki, mövcud olmayan xüsusiyyətlərə müraciətləri interception edir
Azərbaycan
AfrikaansБългарскиবাংলাБеларускаяČ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
Biz saytin işi, analitika və fərdiləşdirmə üçün cookie istifadə edirik. Məlumatların emalı Məxfilik Siyasəti əsasında həyata keçirilir.
hamısını qəbul et konfiqurasiya et rədd et