PHP Conference Nagoya 2025

ReflectionGenerator::getTrace

(PHP 7, PHP 8)

ReflectionGenerator::getTraceПолучает трассировку запущенного генератора

Описание

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

Метод получает трассировку работающего генератора.

Список параметров

options

Значение параметра options устанавливают следующие флаги:

Доступные опции
Опция Описание
DEBUG_BACKTRACE_PROVIDE_OBJECT По умолчанию.
DEBUG_BACKTRACE_IGNORE_ARGS Не включать информацию об аргументах функций в стек вызовов.

Возвращаемые значения

Метод возвращает трассировку работающего генератора.

Примеры

Пример #1 Пример использования метода ReflectionGenerator::getTrace()

<?php

function foo() {
yield
1;
}

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

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

$gen = baz();
$gen->valid(); // Запускаем генератор

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

Смотрите также

Добавить

Примечания пользователей

Пользователи ещё не добавляли примечания для страницы
To Top