Njia __callStatic

Njia __callStatic ni njia ya kichawi katika PHP, ambayo inaitwa kiotomatiki wakati wa kujaribu kuita njia ya statiki isiyopo au isiyopatikana. Inakubali parameta ya kwanza kama jina la njia inayoitwa, na ya pili kama safu ya hoja zilizopitishwa.

Syntax

phppublic static function __callStatic(string $name, array $arguments);

Mfano

Wacha tuunde darasa lenye njia __callStatic na tujaribu kuita njia ya statiki isiyopo:

php<?php
class MyClass {
  public static function __callStatic($name, $args) {
    echo "Called static method '$name' with arguments: ";
    print_r($args);
  }
}

MyClass::nonExistentMethod(1, 2, 3);
?>

Matokeo ya utekelezaji wa kodi:

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

Mfano

Wacha tutekeleze uwakilishi rahisi wa kujenga vitu vya aina tofauti:

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("Method $name not found");
  }
}

class User {}
$user = Factory::createUser();
var_dump($user instanceof User);
?>

Matokeo ya utekelezaji wa kodi:

phptrue

Angalia Pia

  • njia __call,
    ambayo hutenganisha wito wa njia zisizopo za kitu
  • njia __get,
    ambayo hutenganisha marejeo kwa sifa zisizopo