0
여기에있는 아이디어는 로깅 및 디버깅을위한 메소드를 작성하는 것으로, 해당 메소드를 관련 '마법 상수'로 전달할 필요가 없습니다.PHP 마술 상수를 함수 기본값으로 사용하는 방법이 있습니까?
효과적으로, 나는이 방법을 정의과 같이 사용하여 달성하기 위해 노력하고있어 :
function Debug($Message,$File=__FILE__,$Line=__LINE__)
{
...
}
내가에서 실행하고 문제가 있음 나는 하나의 내가 아닌 다른 파일에 위의 방법을 정의하는 경우 오전 '디버깅'오전, 파일 및 줄을 파일에서 메서드가 정의 된보다는 오히려 내가 '디버깅'오전.
는 다음과 같은 파일 집합을 고려하십시오
Debugging.php을
<?
function Debug($Message,$File=__FILE__,$Line=__LINE__)
{
echo("$File ($Line) :: $Message");
}
?>
Testing.php
<?
Debug("Some message");
?>
출력 :
Debugging.php (1) :: Some message
때 messag의 호출 e는 두 번째 파일에서 발생했는데,이 시점에서 분명히 알 수 있듯이 의도 된 구현이 아닙니다. 나는 물론 호출 할 때 '디버그'메서드를 사용하여 마술 상수를 전달할 수 있지만 가능한 경우 불필요한 코드를 제거하려고합니다.
이는 'debug_stack_trace'의 용도입니다. 왜 그걸 쓸 수 없니? – Machavity
나는 메시지를 게시 할 때마다 그것을 파싱하는 사이클을 소비하고 싶다면 합리적인 해결책이라고 생각한다. – DigitalJedi805