(PHP 5 >= 5.3.0, PHP 7, PHP 8)
forward_static_call_array — Appelle une fonction de rappel avec un tableau de paramètres, en préservant la classe appelée courante
Appelle une fonction ou une méthode utilisateur, nommée callback,
avec les arguments passés dans un tableau, similairement à
call_user_func_array().
Lorsqu'elle est appelée depuis une méthode et que la fonction de rappel est
une méthode, elle effectue un
appel transmis,
de sorte que static:: à l'intérieur de la méthode se
résout vers la même classe appelée que dans l'appelant. Cela est utile pour
les fonctions de rappel de méthodes statiques qui devraient se comporter
comme self:: ou parent::.
Note:
Contrairement à forward_static_call(), cette fonction ne nécessite pas de portée de classe active : appeler forward_static_call() hors d'une classe lève une Error, ce que cette fonction ne fait pas.
callbackLa fonction ou la méthode appelée. Ce paramètre peut être un tableau, avec le nom de la classe et de la méthode, ou une chaîne, avec le nom de la fonction.
argsLes paramètres à passer à la fonction de rappel, sous forme de tableau.
Note:
Pour passer un paramètre par référence, l'élément correspondant de
argsdoit être une référence.
Retourne le résultat de la fonction, ou false en cas d'erreur.
Exemple #1 Exemple avec forward_static_call_array()
<?php
class A
{
const NAME = 'A';
public static function test() {
$args = func_get_args();
echo static::NAME, " ".join(',', $args)." \n";
}
}
class B extends A
{
const NAME = 'B';
public static function test() {
echo self::NAME, "\n";
forward_static_call_array(array('A', 'test'), array('encore', 'args'));
forward_static_call_array( 'test', array('autres', 'args'));
}
}
B::test('foo');
function test() {
$args = func_get_args();
echo "C ".join(',', $args)." \n";
}
?>L'exemple ci-dessus va afficher :
B B encore,args C autres,args