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

phppublic 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<?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:

phpCalled static method 'nonExistentMethod' with arguments: [1, 2, 3]

Voorbeeld

Implementeer 'n eenvoudige fasade vir die skepping van verskillende tipe objekte:

php<?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:

phptrue

Sien ook

  • metode __call,
    wat oproepe na nie-bestaande metode van 'n objek onderskep
  • metode __get,
    wat toegang tot nie-bestaande eienskappe onderskep