Mam plik functions.php, a w nim zbiór jakiś tam funckji.
function doSomething($param) { //... }
Mam też inny plik np index.php, który korzysta z funkcji zawartych w pliku functions.php
require_once 'functions.php';
I teraz moje pytanie: Czy wewnątrz definicji funkcji doSomething() da się ustalić nazwę skryptu (w tym wypadku z index.php) oraz numer linii w skrypcie z którego została wywołana (w tym wypadku numer linii również w skrypcie index.php)?
Są odpowiednie specjalne stałe
__FILE__ oraz __LINE__
ale zastosowanie ich wewnątrz definicji funckji doSomething() w taki sposób:
function doSomething($param) { //... }
zwróci nazwę skryptu functions.php oraz linię wywołania stałej __LINE__ również wewnątrz skryptu functions.php.
Można oczywiście jakoś przekazać nazwę skryptu i miejsce wywołania:
index.php:
functions.php:
function doSomething($param, $file, $line) { //... }
ale dla zachowania elegancji rozwiązania chciałbym tego uniknąć.
Do czego to potrzebne? Otóż jeśli aplikacja jest duża i jeśli podczas wykonywania funkcji powstaną jakieś błędy to wewnątrz funkcji można byłoby wyświetlać komunikat o miejscu jej wywołania w celu łatwiejszego odnalezienia i usunięcia błędu.