(PHP 5 >= 5.3.0, PHP 7, PHP 8)
forward_static_call — Llama a una función de devolución de llamada preservando la clase llamada actual
Llama a una función o método definido por el usuario, dado por el parámetro
callback, con los siguientes argumentos. Esta función debe ser llamada dentro
del contexto de un método, no se puede usar fuera de una clase.
Al llamar a una función de devolución de llamada de método, realiza una
llamada reenviada,
de modo que static:: dentro del método se resuelve a la
misma clase llamada que en el llamador. Esto es útil para funciones de
devolución de llamada de métodos estáticos que deberían comportarse como
self:: o parent::.
callbackLa función o método a ser llamado. Este parámetro puede ser una matriz, con el nombre de la clase y del método, o una cadena, con el nombre una función.
argsCero o más parámetros a ser pasados a la función de devolución de llamada.
Devuelve el resultado de la función, o false en caso de error.
Ejemplo #1 Ejemplo de forward_static_call()
<?php
class A
{
const NOMBRE = 'A';
public static function prueba() {
$args = func_get_args();
echo static::NOMBRE, " ".join(',', $args)." \n";
}
}
class B extends A
{
const NOMBRE = 'B';
public static function prueba() {
echo self::NOMBRE, "\n";
forward_static_call(array('A', 'prueba'), 'más', 'args');
forward_static_call( 'prueba', 'otro', 'args');
}
}
B::prueba('foo');
function prueba() {
$args = func_get_args();
echo "C ".join(',', $args)." \n";
}
?>El ejemplo anterior mostrará:
B B más,args C otro,args