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

search for in the

ReflectionFunction::isDisabled> <ReflectionFunction::invoke
Last updated: Fri, 20 May 2011

view this page in

ReflectionFunction::invokeArgs

(PHP 5 >= 5.1.0)

ReflectionFunction::invokeArgsInvokes function args

Descripción

public mixed ReflectionFunction::invokeArgs ( array $args )

Invokes args.

Warning

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Parámetros

args

The passed arguments to the function as an array, much like call_user_func_array() works.

Valores devueltos

Returns the result of the invoked function

Ejemplos

Example #1 ReflectionFunction::invokeArgs() example

<?php
function title($title$name)
{
    return 
sprintf("%s. %s\r\n"$title$name);
}

$function = new ReflectionFunction('title');

echo 
$function->invokeArgs(array('Dr''Phil'));
?>

El resultado del ejemplo sería:

Dr. Phil

Example #2 ReflectionFunction::invokeArgs() with references example

<?php
function get_false_conditions(array $conditions, array &$false_conditions)
{
    foreach (
$conditions as $condition) {
        if (!
$condition) {
            
$false_conditions[] = $condition;
        }
    }
}

$function_ref     = new ReflectionFunction('get_false_conditions');

$conditions       = array(truefalse, -101);
$false_conditions = array();

$function_ref->invokeArgs(array($conditions, &$false_conditions));

var_dump($false_conditions);
?>

El resultado del ejemplo sería:

array(2) {
  [0]=>
  bool(false)
  [1]=>
  int(0)
}

Notas

Note:

If the function has arguments that need to be references, then they must be references in the passed argument list.

Ver también



add a note add a note User Contributed Notes ReflectionFunction::invokeArgs
Andrea Giammarchi 17-Feb-2008 02:41
I encountered a weird problem with ReflectionFunction, described in ticket 44139 of PHP Bugs.

If for some reason you need to call with invoke, or invokeArgs, a function like array_unshift (that accepts internally the array by reference) you could use this code to avoid the generated warning or fatal error.

<?php
function unshift(){
   
$ref        = new ReflectionFunction('array_unshift');
   
$arguments    = func_get_args();
    return       
$ref->invokeArgs(array_merge(array(&$this->arr), $arguments));
}
?>

I don't know about performances (you can create an array manually too, starting from array(&$this->something) and adding arguments). However, it seems to work correctly without problems, at least until the send by reference will be usable with one single value ...

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