Metode __callStatic
Metode __callStatic adalah metode ajaib (magic method) dalam PHP yang secara otomatis dipanggil ketika ada upaya untuk memanggil metode statis yang tidak ada atau tidak dapat diakses. Parameter pertamanya menerima nama metode yang dipanggil, parameter kedua menerima array argumen yang diteruskan.
Sintaks
public static function __callStatic(string $name, array $arguments);
Contoh
Mari buat kelas dengan metode __callStatic dan coba panggil metode statis yang tidak ada:
<?php
class MyClass {
public static function __callStatic($name, $args) {
echo "Called static method '$name' with arguments: ";
print_r($args);
}
}
MyClass::nonExistentMethod(1, 2, 3);
?>
Hasil eksekusi kode:
Called static method 'nonExistentMethod' with arguments: [1, 2, 3]
Contoh
Mari implementasikan fasad sederhana untuk membuat objek berbagai tipe:
<?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);
?>
Hasil eksekusi kode:
true