PHP.mk документација

ReflectionFunction::invokeArgs

Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.

reflectionfunction.invokeargs.php PHP.net прокси Преводот се освежува
Оригинал на PHP.net
Патека reflectionfunction.invokeargs.php Локална патека за оваа страница.
Извор php.net/manual/en Оригиналниот HTML се реупотребува и локално се стилизира.
Режим Прокси + превод во позадина Кодовите, табелите и белешките остануваат читливи во истиот тек.
ReflectionFunction::invokeArgs

Референца за `reflectionfunction.invokeargs.php` со подобрена типографија и навигација.

reflectionfunction.invokeargs.php

ReflectionFunction::invokeArgs

(PHP 5 >= 5.1.2, PHP 7, PHP 8)

ReflectionFunction::invokeArgsInvokes function args

= NULL

public ReflectionFunction::invokeArgs(array $args): mixed

Invokes the function and pass its arguments as array.

Параметри

args

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

Вратени вредности

Returns the result of the invoked function

Дневник на промени

Верзија = NULL
8.0.0 args клучевите сега ќе се толкуваат како имиња на параметри, наместо да се игнорираат тивко.

Примери

Пример #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'));
?>

Пример #1 Пример што покажува затворачка ознака што го опфаќа последниот нов ред

Dr. Phil

Пример #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(true, false, -1, 0, 1);
$false_conditions = array();

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

var_dump($false_conditions);
?>

Пример #1 Пример што покажува затворачка ознака што го опфаќа последниот нов ред

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

Белешки

Забелешка:

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

Види Исто така

Белешки од корисници 2 забелешки

theyourcomputer at gmail dot com
пред 8 години
In the case of call_user_func_array(), if you were to pass around an anonymous function and reference $this within the anonymous function, $this will faithfully refer to the class in the context in which the function was defined. Using ReflectionFunction::invokeArgs() does not seem to retain its original context--yeah, even if you bind the anonymous function before invoking. I recommend call_user_func_array() where context is a concern.
Андреа Џиамарки
пред 18 години
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 ...
Навигација

Прелистувај сродни теми и функции.

На оваа страница

Автоматски outline од активната документација.

Насловите ќе се појават тука по вчитување.

Попрегледно читање

Примерите, changelog табелите и user notes се визуелно издвоени за да не се губат во долгата содржина.

Брз совет Користи го outline-от Скокни директно на главните секции од активната страница.
Извор Оригиналниот линк останува достапен Кога ти треба целосен upstream context, отвори го PHP.net во нов tab.