Kaedah __callStatic
Kaedah __callStatic ialah kaedah ajaib dalam PHP yang dipanggil secara automatik apabila cuba memanggil kaedah statik yang tidak wujud atau tidak boleh diakses. Parameter pertamanya menerima nama kaedah yang dipanggil, yang kedua - tatasusunan argumen yang diluluskan.
Sintaks
public static function __callStatic(string $name, array $arguments);
Contoh
Mari buat kelas dengan kaedah __callStatic dan cuba panggil kaedah statik yang tidak wujud:
<?php
class MyClass {
public static function __callStatic($name, $args) {
echo "Called static method '$name' with arguments: ";
print_r($args);
}
}
MyClass::nonExistentMethod(1, 2, 3);
?>
Keputusan pelaksanaan kod:
Called static method 'nonExistentMethod' with arguments: [1, 2, 3]
Contoh
Mari laksanakan fasad mudah untuk mencipta objek pelbagai jenis:
<?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);
?>
Keputusan pelaksanaan kod:
true