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

ReflectionGenerator::getTrace

(PHP 7, PHP 8)

ReflectionGenerator::getTraceGets the trace of the executing generator

说明

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

Get the trace of the currently executing generator.

参数

options

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

Available options
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) {
    }
  }
}

参见