__callStatic metodu
__callStatic metodu PHP-də sehrli metodlardan biridir, mövcud olmayan və ya əlçatan olmayan statik metod çağırıldıqda avtomatik olaraq işə düşür. O, birinci parametrdə çağırılan metodun adını, ikinci parametrdə isə ötürülmüş arqumentlərin massivini qəbul edir.
Sintaksis
public static function __callStatic(string $name, array $arguments);
Nümunə
__callStatic metodu olan bir sinif yaradaq və mövcud olmayan statik metodu çağırmağa çalışaq:
<?php
class MyClass {
public static function __callStatic($name, $args) {
echo "Called static method '$name' with arguments: ";
print_r($args);
}
}
MyClass::nonExistentMethod(1, 2, 3);
?>
Kodu icra etmənin nəticəsi:
Called static method 'nonExistentMethod' with arguments: [1, 2, 3]
Nümunə
Müxtəlif tipli obyektlərin yaradılması üçün sadə fasad həyata keçirək:
<?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);
?>
Kodu icra etmənin nəticəsi:
true