Функцыя forward_static_call

Функцыя forward_static_call дазваляе выклікаць статычны метад класа, выкарыстоўваючы позняе статычнае звязванне (Late Static Binding). Першым параметрам перадаецца зваротная функцыя ў выглядзе масіва [клас, метад] ці радкі з імем метаду, а наступныя параметры - аргументы для выкліканага метаду.

Сінтаксіс

phpforward_static_call(callable $callback, mixed ...$args): mixed

Прыклад

Выклік статычнага метаду праз forward_static_call:

php<?php
class A {
  public static function test() {
    return static::class;
  }
}

class B extends A {}

$res = forward_static_call(['B', 'test']);
echo $res;
?>

Вынік выканання кода:

php'B'

Прыклад

Перадача аргументаў у выкліканы метад:

php<?php
class Calculator {
  public static function add($a, $b) {
    return $a + $b;
  }
}

$res = forward_static_call(['Calculator', 'add'], 5, 3);
echo $res;
?>

Вынік выканання кода:

php8

Глядзіце таксама

  • функцыю call_user_func,
    якая выклікае зваротную функцыю
  • функцыю forward_static_call_array,
    якая аналагічная forward_static_call, але прымае аргументы ў выглядзе масіва