353 of 410 menu

Метод __callStatic

Методът __callStatic е магически метод в PHP, който автоматично се извиква при опит за извикване на несъществуващ или недостъпен статичен метод. Като първи параметър приема името на извиквания метод, а като втори - масив от подадените аргументи.

Синтаксис

public static function __callStatic(string $name, array $arguments);

Пример

Нека създадем клас с метод __callStatic и опитаме да извикаме несъществуващ статичен метод:

<?php class MyClass { public static function __callStatic($name, $args) { echo "Called static method '$name' with arguments: "; print_r($args); } } MyClass::nonExistentMethod(1, 2, 3); ?>

Резултат от изпълнението на кода:

Called static method 'nonExistentMethod' with arguments: [1, 2, 3]

Пример

Нека реализираме прост фасаден клас за създаване на обекти от различни типове:

<?php class Factory { public static function __callStatic($name, $args) { if (strpos($name, 'create') === 0) { $className = substr($name, 6); return new $className(...$args); } throw new Exception("Method $name not found"); } } class User {} $user = Factory::createUser(); var_dump($user instanceof User); ?>

Резултат от изпълнението на кода:

true

Вижте също

  • метод __call,
    който прихваща извиквания на несъществуващи методи на обект
  • метод __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
Ние използваме бисквитки за работата на сайта, анализ и персонализация. Обработката на данни се извършва в съответствие с Политика за поверителност.
приемам всички настройки отхвърляне