Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] Czy funkcja zostala wykonana?
djhors
post
Post #1





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 13.03.2008

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


Mam takie pytanko:

Otoz potrzebuje sprawdzic w danym momencie (najlepiej po calkowitym zaladowaniu strony do przegladarki) czy dana funkcja czy to z klasy czy nie wczesniej include -wana zostala gdzies wczesniej wywolana poprzez zwykle mojafunkcja($zmienna);

Oczywiscie kazdy powie czemy nie uzyc sesji, cookie lub wystawic sprawdzic zmienne czy istnieja jesli zostala wywolana. Ale niestety nie moge tego zrobic (nie moge ingerowac w kod funkcji - Licencja) i sama funkcja nie oddaje zadnych zmiennych.

Czy istnieje jakas funckcja_specjalna sprawdzajaca to czy dana funckja byla wywolana czy nie?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
carbolymer
post
Post #2





Grupa: Zarejestrowani
Postów: 102
Pomógł: 12
Dołączył: 27.01.2007
Skąd: north              Poziom: 158                     Tytuł: Miszcz

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


Niestety nie. Ale jeżeli ta funkcja jest w klasie to możesz spróbować ją przesłonić w taki sposób:
  1. <?php
  2. class omgDoNotTouchAnythingInside
  3. {
  4. public function makeSkyBlue($arg)
  5. {
  6. //tu te ciało objęte licencją
  7. return $veryImportantVariable;
  8. }
  9. }
  10.  
  11. class simpleClass extends omgDoNotTouchAnythingInside
  12. {
  13. function makeSkyBlue($arg)
  14. {
  15. echo 'Niebo stało sie niebieskie.';
  16. return parent::makeSkyBlue($arg);
  17. }
  18.  
  19. }
  20. ?>

i w każdym miejscu w kodzie musisz zamienić: $obj = new omgDoNotTouchAnythingInside; na $obj = new simpleClass; I powinien sie przy każdym wywołaniu $obj->makeSkyBlue() pojawić napis (możesz to zmienić na cokolwiek).

Co do funkcji nie w klasie, to tylko debug_backtrace() przychodzi mi do głowy.


--------------------
Blog | plugin system by carbolymer
Residence: #php.pl @ IRCNet
"Pralki powstały po to, aby kobiety też mogły programować"
Go to the top of the page
+Quote Post
Sedziwoj
post
Post #3





Grupa: Zarejestrowani
Postów: 793
Pomógł: 32
Dołączył: 23.11.2006
Skąd: Warszawa

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


Zawsze można włączyć xdebuger i profilowanie, tam napisze ile razy była wywołana i gdzie, ale to jedynie jeśli chcesz sprawdzić to, jak ma być to dynamiczne to opakowanie lub też xdebuger debugowanie skryptu i breakpoint w kodzie kodzie funkcji aby wtedy będzie ile razy wywołana.
Ale szczerze jeśli to nie jest w klasie, to nie w tym miejscu co trzeba umieściłeś.


--------------------
Algorytmy w PHP, czy ktoś o tym słyszał?
Dlaczego tak mało kobiet programuje? ponieważ nie zajmują się głupotami.
Go to the top of the page
+Quote Post
djhors
post
Post #4





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 13.03.2008

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


Hm, ciekawe pozniej to wszystko sprawdze. Pierwszy raz mam taka sytuacje wiec nie wiedzialem za co sie zlapac teraz mam przynajmniej kierunek. snitch.gif
Go to the top of the page
+Quote Post
bim2
post
Post #5





Grupa: Zarejestrowani
Postów: 1 873
Pomógł: 152
Dołączył: 9.04.2006
Skąd: Berlin

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


Nie wystarczy zwykle:
  1. <?php 
  2. function PosredniaFunkcja($parametrs)
  3. { 
  4. if(RUN_ToCoChcemSprawdzic===true)
  5. {
  6.  define('RUN_ToCoChcemSprawdzic', true);
  7.  return ToCoChcemSprawdzic($parametrs);
  8. } else {
  9.  echo 'Funkcja raz juz byla wywolana';
  10. }
  11. }
  12. ?>

? :]


--------------------
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 21.08.2025 - 12:31