array ( 0 => 'index.php', 1 => 'PHP Manual', ), 'head' => array ( 0 => 'UTF-8', 1 => 'zh', ), 'this' => array ( 0 => 'reflectiongenerator.gettrace.php', 1 => 'ReflectionGenerator::getTrace', 2 => 'Gets the trace of the executing generator', ), 'up' => array ( 0 => 'class.reflectiongenerator.php', 1 => 'ReflectionGenerator', ), 'prev' => array ( 0 => 'reflectiongenerator.getthis.php', 1 => 'ReflectionGenerator::getThis', ), 'next' => array ( 0 => 'reflectiongenerator.isclosed.php', 1 => 'ReflectionGenerator::isClosed', ), 'alternatives' => array ( ), 'source' => array ( 'lang' => 'en', 'path' => 'reference/reflection/reflectiongenerator/gettrace.xml', ), 'history' => array ( ), ); $setup["toc"] = $TOC; $setup["toc_deprecated"] = $TOC_DEPRECATED; $setup["parents"] = $PARENTS; manual_setup($setup); contributors($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.
示例 #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());以上示例的输出类似于:
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) {
}
}
}