__callStatic методу
__callStatic методу PHP'деги сихирдүү метод болуп саналат, ал бар болбогон же жеткиликтүү эмес статикалык методду чакырууга аракет кылынганда автоматтык түрдө чакырылат. Ал биринчи параметр катары чакырылып жаткан методдун атын, экинчи параметр катары берилген аргументтердин массивин кабыл алат.
Синтаксис
public static function __callStatic(string $name, array $arguments);
Мисал
__callStatic методу бар класс түзөлү жана бар болбогон статикалык методду чакырууга аракет кылалы:
<?php
class MyClass {
public static function __callStatic($name, $args) {
echo "Чакырылган статикалык метод '$name' аргументтер менен: ";
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