PHP에서는 오브젝트를 인스턴스화하는 스크립트의 파일 이름을 가져올 수 있습니까?오브젝트를 인스턴스화하는 스크립트의 파일 이름
예를 들어 Class 클래스의 새 인스턴스를 만드는 file.php라는 스크립트가 있습니다. 이 클래스에는 트리거 될 때 오류 정보를 반환하는 Error 객체가 있습니다. file.php가 오류를 일으킨 것을 보여주고 싶습니다.
PHP에서는 오브젝트를 인스턴스화하는 스크립트의 파일 이름을 가져올 수 있습니까?오브젝트를 인스턴스화하는 스크립트의 파일 이름
예를 들어 Class 클래스의 새 인스턴스를 만드는 file.php라는 스크립트가 있습니다. 이 클래스에는 트리거 될 때 오류 정보를 반환하는 Error 객체가 있습니다. file.php가 오류를 일으킨 것을 보여주고 싶습니다.
debug_backtrace() 기능을 사용하고 계신가요? 실행 흐름을 아래에서 위로 보여줍니다.
error_get_last의 반환 된 배열이 사용자의 필요를 충족시킬 가능성이 있습니까? 이 함수는 키 "type", "message", "file"및 "line"으로 마지막 오류를 설명하는 연관 배열을 반환합니다. 오류가 아직 없으면 NULL을 반환합니다. '
PHP 오류가 아닌 커스텀 오류 리포터이지만 그 기능에 대해서도 감사드립니다. – Calvin
카이 Sellgren는 debug_backtrace() 기능을 사용할 수 있고, 상기 된 바와 같이. 예외를 throw하고 catch하여 역 추적을 얻을 수도 있습니다.
try
{
throw new Exception();
}
catch(Exception $e)
{
print_r($e->getTrace());
}
백 트레이스를 가져 오는 데 시간이 오래 걸릴 수 있으므로 두 솔루션을 벤치마킹하여 가장 빠른 것을 찾아야합니다.
그런데 오류 객체는 예외의 하위 클래스가 아닙니다. 그것이 예외가 존재하는 이유입니다 ...
클래스의 생성자 내에서 오류가 발생하는 경우에만 작동합니다. 어쩌면 그것이 그가 원하는 것 일지 모르겠습니다. – Savageman
고마워, 정확히 내가 무엇을 찾고 있었는지! – Calvin
@Savageman, 네, 그게 어디에서 방아쇠를 당길 지 알지만, 너무 아는 기분입니다. – Calvin