Metodi __callStatic
Metodi __callStatic on maaginen metodi PHP:ssä, joka kutsutaan automaattisesti, kun yritetään kutsua olematonta tai käyttökelvotonta staattista metodia. Se saa ensimmäisenä parametrina kutsutun metodin nimen ja toisena parametrina lähetettyjen argumenttien taulukon.
Syntaksi
public static function __callStatic(string $name, array $arguments);
Esimerkki
Luodaan luokka metodilla __callStatic ja yritetään kutsua olematonta staattista metodia:
<?php
class MyClass {
public static function __callStatic($name, $args) {
echo "Kutsuttiin staattista metodia '$name' argumenteilla: ";
print_r($args);
}
}
MyClass::nonExistentMethod(1, 2, 3);
?>
Koodin suorituksen tulos:
Kutsuttiin staattista metodia 'nonExistentMethod' argumenteilla: [1, 2, 3]
Esimerkki
Toteutetaan yksinkertainen fasadi erityyppisten objektien luomiseen:
<?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("Metodia $name ei löytynyt");
}
}
class User {}
$user = Factory::createUser();
var_dump($user instanceof User);
?>
Koodin suorituksen tulos:
true