Example to understand this function and difference with call_user_func:
<?php
class Beer {
const NAME = 'Beer!';
public static function printed(){
echo 'static Beer:NAME = '. static::NAME . PHP_EOL;
}
}
class Ale extends Beer {
const NAME = 'Ale!';
public static function printed(){
forward_static_call(array('parent','printed'));
call_user_func(array('parent','printed'));
forward_static_call(array('Beer','printed'));
call_user_func(array('Beer','printed'));
}
}
Ale::printed();
echo '</pre>';
?>
forward_static_call
(PHP 5 >= 5.3.0)
forward_static_call — Llamar a un método estático
Descripción
Llama a una función o método definido por el usuario, dado por el parámetro
function, con los siguientes argumentos. Esta función debe ser llamda dentro
del contexto de un método, no se puede usar fuera de una clase.
Usa el Enlace estático
en tiempo de ejecución.
Parámetros
-
function -
La 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.
-
parameter -
Cero o más parámetros a ser pasados a la función.
Valores devueltos
Devuelve el resultado de la función, o FALSE en caso de error.
Ejemplos
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 resultado del ejemplo sería:
B B más,args C otro,args
Ver también
- forward_static_call_array() - Llamar a un método estático y pasar los argumentos como matriz
- call_user_func_array() - Llamar a una llamada de retorno un array de parámetros
- call_user_func() - Llamar a una llamada de retorno dada por el primer parámetro
- is_callable() - Verificar que los contenidos de una variable puedan ser llamados como una función
- información acerca de tipos de llamada de retorno
arthur dot techarts at gmail dot com
12-Jul-2011 07:39
