Eloquent\Phony\Stub\Answer\Builder\Detail\GeneratorAnswerBuilderDetailWithReturn::answer PHP Метод

answer() публичный статический Метод

Get the answer.
public static answer ( array &$iterations, array &$requests, &$exception, &$returnValue, &$returnsArgument, &$returnsSelf, Invoker $invoker ) : callable
$iterations array
$requests array
$invoker Eloquent\Phony\Invocation\Invoker The invoker to use.
Результат callable The answer.
    public static function answer(array &$iterations, array &$requests, &$exception, &$returnValue, &$returnsArgument, &$returnsSelf, Invoker $invoker)
    {
        return function ($self, $arguments) use(&$iterations, &$requests, &$exception, &$returnValue, &$returnsArgument, &$returnsSelf, $invoker) {
            foreach ($iterations as $iteration) {
                foreach ($iteration->requests as $request) {
                    $invoker->callWith($request->callback(), $request->finalArguments($self, $arguments));
                }
                if ($iteration instanceof GeneratorYieldFromIteration) {
                    foreach ($iteration->values as $key => $value) {
                        if ($key instanceof InstanceHandle) {
                            $key = $key->get();
                        }
                        if ($value instanceof InstanceHandle) {
                            $value = $value->get();
                        }
                        (yield $key => $value);
                    }
                } else {
                    if ($iteration->hasKey) {
                        (yield $iteration->key => $iteration->value);
                    } elseif ($iteration->hasValue) {
                        (yield $iteration->value);
                    } else {
                        yield;
                    }
                }
            }
            foreach ($requests as $request) {
                $invoker->callWith($request->callback(), $request->finalArguments($self, $arguments));
            }
            if ($exception) {
                throw $exception;
            }
            if ($returnsSelf) {
                return $self;
            }
            if (null !== $returnsArgument) {
                return $arguments->get($returnsArgument);
            }
            return $returnValue;
        };
    }
GeneratorAnswerBuilderDetailWithReturn