php8.5
Home/ Manual/ reflection / reflectiongenerator/ ReflectionGenerator::getTrace

ReflectionGenerator::getTrace

PHP function Edit on GitHub ✎

(PHP 7, PHP 8)

Gets the trace of the executing generator

Description

ReflectionGenerator::getTrace(int $options = DEBUG_BACKTRACE_PROVIDE_OBJECT): array

Get the trace of the currently executing generator.

Parameters

options

The value of options can be any of the following flags.

OptionDescription
DEBUG_BACKTRACE_PROVIDE_OBJECTDefault.
DEBUG_BACKTRACE_IGNORE_ARGSDon't include the argument information for functions in the stack trace.

Return Values

Returns the trace of the currently executing generator.

Examples

ReflectionGenerator::getTrace example

php
<?php
function foo() {
    yield 1;
}

function bar()
{
    yield from foo();
}

function baz()
{
    yield from bar();
}

$gen = baz();
$gen->valid(); // start the generator

var_dump((new ReflectionGenerator($gen))->getTrace());

The above example will output something similar to:

output
array(2) {
  [0]=>
  array(4) {
    ["file"]=>
    string(18) "example.php"
    ["line"]=>
    int(8)
    ["function"]=>
    string(3) "foo"
    ["args"]=>
    array(0) {
    }
  }
  [1]=>
  array(4) {
    ["file"]=>
    string(18) "example.php"
    ["line"]=>
    int(12)
    ["function"]=>
    string(3) "bar"
    ["args"]=>
    array(0) {
    }
  }
}

See Also

  • ReflectionGenerator::getFunction
  • ReflectionGenerator::getThis

Source: reference/reflection/reflectiongenerator/gettrace.xml · from the official PHP manual (php/doc-en)