downloads | documentation | faq | getting help | mailing lists | licenses | wiki | reporting bugs | php.net sites | links | conferences | my php.net

search for in the

func_get_arg> <forward_static_call_array
[edit] Last updated: Fri, 25 May 2012

view this page in

forward_static_call

(PHP 5 >= 5.3.0)

forward_static_callLlamar a un método estático

Descripción

mixed forward_static_call ( callable $function [, mixed $parameter [, mixed $... ]] )

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 
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



add a note add a note User Contributed Notes forward_static_call
arthur dot techarts at gmail dot com 12-Jul-2011 07:39
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>';
?>

 
show source | credits | stats | sitemap | contact | advertising | mirror sites