Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Nazwa pliku oraz numer linii wywołania funckji., Jak (w elegancki sposób) ustalić skąd wywołano daną funkcję?
pszpiler
post
Post #1





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 5.10.2008

Ostrzeżenie: (0%)
-----


Przykładowa sytuacja wygląda tak:

Mam plik functions.php, a w nim zbiór jakiś tam funckji.
  1. function doSomething($param) {
  2. //...
  3. }

Mam też inny plik np index.php, który korzysta z funkcji zawartych w pliku functions.php
  1. require_once 'functions.php';
  2. echo doSomething($param);

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
  1. __FILE__
  2. oraz
  3. __LINE__

ale zastosowanie ich wewnątrz definicji funckji doSomething() w taki sposób:
  1. function doSomething($param) {
  2. //...
  3. echo __FILE__;
  4. echo __LINE__;
  5. }

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:
  1. echo doSomething($param, __FILE__, __LINE__);

functions.php:
  1. function doSomething($param, $file, $line) {
  2. //...
  3. echo $file;
  4. echo $line;
  5. }

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.

Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 25.08.2025 - 16:25