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, 18 May 2012

view this page in

forward_static_call

(PHP 5 >= 5.3.0)

forward_static_callCall a static method

Description

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

Calls a user defined function or method given by the function parameter, with the following arguments. This function must be called within a method context, it can't be used outside a class. It uses the late static binding.

Parameters

function

The function or method to be called. This parameter may be an array, with the name of the class, and the method, or a string, with a function name.

parameter

Zero or more parameters to be passed to the function.

Return Values

Returns the function result, or FALSE on error.

Examples

Example #1 forward_static_call() example

<?php

class A
{
    const 
NAME 'A';
    public static function 
test() {
        
$args func_get_args();
        echo static::
NAME" ".join(','$args)." \n";
    }
}

class 
extends A
{
    const 
NAME 'B';

    public static function 
test() {
        echo 
self::NAME"\n";
        
forward_static_call(array('A''test'), 'more''args');
        
forward_static_call'test''other''args');
    }
}

B::test('foo');

function 
test() {
        
$args func_get_args();
        echo 
"C ".join(','$args)." \n";
    }

?>

The above example will output:

B
B more,args 
C other,args

See Also



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