Συνάρτηση forward_static_call

Η συνάρτηση forward_static_call επιτρέπει την κλήση μιας στατικής μεθόδου μιας κλάσης, χρησιμοποιώντας δέσμευση late static binding (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, αλλά δέχεται ορίσματα σε μορφή πίνακα