ReflectionFunction::invokeArgs

引数を指定して関数を起動する

説明

public mixed ReflectionFunction::invokeArgs(array $args)

関数を起動して、その引数を配列として渡します。

パラメータ

args

関数に渡す引数を含む配列。 call_user_func_array と同じように動作します。

戻り値

起動した関数の結果を返します。

変更履歴

バージョン 説明
8.0.0 args のキーは、 静かに無視されるのではなく、パラメータの名前として解釈されるようになりました。

例1 ReflectionFunction::invokeArgs の例

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

$function = new ReflectionFunction('title');

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

上の例の出力は以下となります。

Dr. Phil

例2 ReflectionFunction::invokeArgs で参照を使う例

<?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);
?>

上の例の出力は以下となります。

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

注意

注意:

関数の引数の中にリファレンス渡しを要するものがある場合は、 渡す引数の中でもリファレンスにしておく必要があります。

参考

  • ReflectionFunction::invoke
  • ReflectionFunctionAbstract::getNumberOfParameters
  • __invoke()
  • call_user_func_array