라이브러리

[PHP] ReflectionFiber::getTrace - 현재 실행 지점의 백트레이스를 가져옵니다.




ReflectionFiber::getTrace


PHP 8.1 버전부터 ReflectionFiber::getTrace 메소드가 추가되었습니다. 이 메소드는 현재 실행 중인 Fiber의 호출 스택을 반환합니다. Fiber는 PHP 8.0 버전부터 지원되는 기능으로, 함수를 실행하는 동안 상태를 저장하고 복원할 수 있는 기능입니다.

ReflectionFiber::getTrace 사용 예제


#hostingforum.kr
php

<?php



// Fiber 함수를 정의합니다.

function myFiber($arg) {

    // Fiber 함수가 호출된 호출 스택을 출력합니다.

    $reflectionFiber = new ReflectionFiber();

    $trace = $reflectionFiber->getTrace();

    print_r($trace);



    // Fiber 함수가 종료되면, 종료 메시지를 출력합니다.

    echo "Fiber 종료
";

}



// myFiber 함수를 호출합니다.

myFiber("Hello, World!");



?>



위의 예제에서, `myFiber` 함수는 현재 실행 중인 Fiber의 호출 스택을 출력합니다. 호출 스택은 `print_r` 함수를 사용하여 출력됩니다.

ReflectionFiber::getTrace의 반환 값


`ReflectionFiber::getTrace` 메소드는 현재 실행 중인 Fiber의 호출 스택을 반환합니다. 호출 스택은 배열로 반환되며, 각 항목은 `ReflectionFunction` 객체를 포함합니다. `ReflectionFunction` 객체는 호출된 함수의 정보를 포함합니다.

ReflectionFiber::getTrace의 예제 (상세)


#hostingforum.kr
php

<?php



// Fiber 함수를 정의합니다.

function myFiber($arg) {

    // Fiber 함수가 호출된 호출 스택을 출력합니다.

    $reflectionFiber = new ReflectionFiber();

    $trace = $reflectionFiber->getTrace();



    // 호출 스택을 출력합니다.

    foreach ($trace as $i => $item) {

        echo "호출 스택 $i: " . $item->getName() . "
";

    }



    // Fiber 함수가 종료되면, 종료 메시지를 출력합니다.

    echo "Fiber 종료
";

}



// myFiber 함수를 호출합니다.

myFiber("Hello, World!");



?>



위의 예제에서, `myFiber` 함수는 현재 실행 중인 Fiber의 호출 스택을 출력합니다. 호출 스택은 `foreach` 루프를 사용하여 출력됩니다. 각 항목은 호출된 함수의 이름을 출력합니다.

ReflectionFiber::getTrace의 예제 (상세, 함수 이름 포함)


#hostingforum.kr
php

<?php



// Fiber 함수를 정의합니다.

function myFiber($arg) {

    // Fiber 함수가 호출된 호출 스택을 출력합니다.

    $reflectionFiber = new ReflectionFiber();

    $trace = $reflectionFiber->getTrace();



    // 호출 스택을 출력합니다.

    foreach ($trace as $i => $item) {

        echo "호출 스택 $i: " . $item->getName() . " (" . $item->getFileName() . ":" . $item->getStartLine() . ")
";

    }



    // Fiber 함수가 종료되면, 종료 메시지를 출력합니다.

    echo "Fiber 종료
";

}



// myFiber 함수를 호출합니다.

myFiber("Hello, World!");



?>



위의 예제에서, `myFiber` 함수는 현재 실행 중인 Fiber의 호출 스택을 출력합니다. 호출 스택은 `foreach` 루프를 사용하여 출력됩니다. 각 항목은 호출된 함수의 이름, 파일 이름, 시작 라인 번호를 출력합니다.

결론


`ReflectionFiber::getTrace` 메소드는 현재 실행 중인 Fiber의 호출 스택을 반환합니다. 호출 스택은 배열로 반환되며, 각 항목은 `ReflectionFunction` 객체를 포함합니다. `ReflectionFunction` 객체는 호출된 함수의 정보를 포함합니다. 위의 예제를 통해 `ReflectionFiber::getTrace` 메소드의 사용 방법을 이해할 수 있습니다.
  • profile_image
    나우호스팅 @pcs8404 

    호스팅포럼 화이팅!

    댓글목록

    등록된 댓글이 없습니다.

  • 전체 10,077건 / 284 페이지

검색

게시물 검색