Metode __callStatic
Die metode __callStatic is 'n magiese metode in PHP wat outomaties opgeroep word wanneer gepoog word om 'n nie-bestaande of ontoeganklike statiese metode aan te roep. Dit neem die naam van die opgeroepde metode as eerste parameter en 'n array van deurgegee argumente as tweede.
Sintaksis
public static function __callStatic(string $name, array $arguments);
Voorbeeld
Skep 'n klas met 'n metode __callStatic en probeer om 'n nie-bestaande statiese metode aan te roep:
<?php
class MyClass {
public static function __callStatic($name, $args) {
echo "Static metode '$name' aangeroep met argumente: ";
print_r($args);
}
}
MyClass::nonExistentMethod(1, 2, 3);
?>
Resultaat van die kode-uitvoering:
Called static method 'nonExistentMethod' with arguments: [1, 2, 3]
Voorbeeld
Implementeer 'n eenvoudige fasade vir die skepping van verskillende tipe objekte:
<?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("Metode $name nie gevind nie");
}
}
class User {}
$user = Factory::createUser();
var_dump($user instanceof User);
?>
Resultaat van die kode-uitvoering:
true