array ( 0 => 'index.php', 1 => 'PHP Manual', ), 'head' => array ( 0 => 'UTF-8', 1 => 'pt_BR', ), 'this' => array ( 0 => 'reflectiongenerator.gettrace.php', 1 => 'ReflectionGenerator::getTrace', ), 'up' => array ( 0 => 'class.reflectiongenerator.php', 1 => 'ReflectionGenerator', ), 'prev' => array ( 0 => 'reflectiongenerator.getthis.php', 1 => 'ReflectionGenerator::getThis', ), 'next' => array ( 0 => 'class.reflectionfiber.php', 1 => 'ReflectionFiber', ), 'alternatives' => array ( ), 'source' => array ( 'lang' => 'en', 'path' => 'reference/reflection/reflectiongenerator/gettrace.xml', ), ); $setup["toc"] = $TOC; $setup["toc_deprecated"] = $TOC_DEPRECATED; $setup["parents"] = $PARENTS; manual_setup($setup); ?>
(PHP 7, PHP 8)
ReflectionGenerator::getTrace — Gets the trace of the executing generator
Get the trace of the currently executing generator.
options
The value of options
can be any of
the following flags.
Option | Description |
---|---|
DEBUG_BACKTRACE_PROVIDE_OBJECT
|
Default. |
DEBUG_BACKTRACE_IGNORE_ARGS
|
Don't include the argument information for functions in the stack trace. |
Returns the trace of the currently executing generator.
Exemplo #1 ReflectionGenerator::getTrace() example
<?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());
O exemplo acima produzirá algo semelhante a:
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) { } } }