(PHP 5 >= 5.3.0, PHP 7, PHP 8)
forward_static_call — Appelle une fonction de rappel en préservant la classe appelée courante
Appelle une fonction ou une méthode utilisateur, nommée callback,
avec les arguments qui suivent. Cette fonction doit être appelée depuis une méthode,
et ne peut pas être utilisée hors d'une classe.
Lorsque 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::.
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.
argsZéro ou plusieurs paramètres à passer à la fonction de rappel.
Retourne le résultat de la fonction, ou bien false en cas d'erreur.
Exemple #1 Exemple avec forward_static_call()
<?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('A', 'test'), 'encore', 'args');
forward_static_call( 'test', '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