Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Jak napisac funkcje, ktora mozna wywolac tylko 1 raz?
Forum PHP.pl > Forum > PHP
KwiateK_
Chodzi mi o stworzenie funkcji podobnej do np. include_once(), tzn. takiej, ktora wykona sie jednokrotnie, bez wzgledu na to, ile razy zostanie wywolana.
Prph
include_once nie wykonuje sie tylko raz winksmiley.jpg Ale chyba zwyczajnie zle to nazwales.

Zeby cos takiego zrobic, to najlepiej uzywac obiektow. Przyklad:

  1. <?php
  2. class A
  3. {
  4. private static $wykonana = false;
  5.  
  6. public function metoda()
  7. {
  8.  if(!self::$wykonana)
  9.  {
  10. self::$wykonana = true;
  11. echo 'wykonuje sie';
  12.  }
  13. }
  14. }
  15.  
  16. $obiekt = new A;
  17.  
  18. $a->metoda();
  19. $a->metoda(); // juz sie nie wyswietli
  20. ?>


Jezeli nie chcesz uzywac klas, to chyba pozostaje tylko uzycie tablicy globalnej i w niej przechowywanie takiej informacji.

Adrian.
KwiateK_
Dzieki. Szukalem wlasciwei rozwiazania nie-obiektowego. Poradzilem sobie juz przy uzyciu "global". Czasami pare godzin snu dobrze wplywa na pisany kod winksmiley.jpg
cicik
Cytat(KwiateK_ @ 18.09.2006, 12:52:22 ) *
Dzieki. Szukalem wlasciwei rozwiazania nie-obiektowego. Poradzilem sobie juz przy uzyciu "global". Czasami pare godzin snu dobrze wplywa na pisany kod winksmiley.jpg


To co proponuje Prph jest zdecydowanie lepsze od używania global i zwykłej funkcji.
macbirdie
Funkcja może też wewnątrz może definiować zmienną statyczną, więc nie trzeba koniecznie robić tego obiektowo. smile.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.