352 of 410 menu

__call metodu

__call metodu PHP-däki bir sýurly metodydyr, ol klasyň ýok ýa-da elýeter däl metodyna ýüzlenilýän synagy avtomatiki suratda çagyrylýar. Ol birinji parameter hökmünde çagyrylýan metoduň adyny, ikinji parameter hökmünde bolsa argumentleriň sanawyny kabul edýär.

Sintaksis

public function __call(string $name, array $arguments) { // amala aşyrylyşy }

Mysal

__call metody bilen bir klas dörediň, ol bary ýok metodlaryň çagyryşlaryny ýolar:

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

Koduň amal ediliş netijesi:

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

Mysal

__call kömegi bilen ýönekeý metod wekillerini amala aşyryň:

<?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); ?>

Koduň amal ediliş netijesi:

5

Şeýle-de serediň

  • __callStatic metodu,
    statiki metodlaryň çagyryşlaryny ýolaýar
  • __get metodu,
    ýok aýratynlyklara ýüzlenişleri ýolaýar
Türkmen
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkçeЎзбекOʻzbekTiếng Việt
Biz sahypanyň işlemegi, analitika we şahsyýetleşdirmek üçin cookie ulanýarys. Maglumatlaryň işlenişi Gizlinlik syýasaty boýunça amala aşyrylýar.
hemmesini kabul et sazlamak ret et