forward_static_call функциясы

forward_static_call функциясы классдын статикалык методун, кеч статикалык байланышты (Late Static Binding) колдонуп чакырууга мүмкүндүк берет. Биринчи параметр катары [класс, метод] массиви же методдун атынан турган сап түрүндөгү callback-функция берилет, ал эми кийинки параметрлер - чакырылуучу методго аргументтер болуп саналат.

Синтаксис

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 функциясын,
    ал callback-функцияны чакырат
  • forward_static_call_array функциясын,
    ал forward_static_call сыяктуу эле, бирок аргументтерди массив түрүндө кабыл алат