Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: jak zrobic zmienna statyczna
Forum PHP.pl > Forum > Przedszkole
ptm
Witam

Jestem poczatkujacy w php i mam spory choc dosc prymitywny problem...
Jak zrobic w php odpowiednik zmiennej static z C ?

Chodzi o to ze funkcja tworzy formularz ktory jest przekazywany przez POST do pliku php, ten nastepnie wywoluje nowa funkcje z tego samego pliku co funkcje poprzednia. w tej funkcji na poczatku deklaruje jakas zmienna np $i=0 i nastepnie ja zmieniam. Wracam wtedy do pierwszej funcji i tak w kolku. Problem w tym ze jak wracam do 2giej funkcji to chce zeby operacja zostala wykonana na wczesniej obliczonej warotsci, czyli zeby nie byla ponownie definiowana jako $i=0.

uhmmm mam nadzieje ze to w miare wyjasnilem... nie bede ladowal kodu bo troche za duzo by bylo

probowalem juz funkcji static tak jak to sie robi w C, zmiennej globalnej ale ona tez jakos znika (robie to w php4 i wiem ze sa jakies problemy ze zmiennymi superglobalnymi ale za bardzo nie wiem jakie), przekazywanie tej zmiennej miedzy funkcjami to moze i skuteczny ale wyjatkowo oblesny sposob, probowalem tez sztuczki w stylu isset ale tez za bardzo nie dziala bo wydaje mi sie ze ta zmienna moze byc kasowana po wyjsciu z funckji, jesli tak to jak sobie z tym poradzic?

bardzo prosze o pomoc bo sie z tym mecze juz kilka godzin a wiem ze to prymitywna sprawa
dr_bonzo
Wywolanie dwoch stron w php (skryptow) to jak dwa razy uruchomienie programu napisanego w C -- zmienne nie sa miedzy nimi przekazywane, mozesz je zapisac w pliku/DB/sesji/$_GET/$cookie, itd i odczytac w drugim WYWOLANIU SKRYPTU (choc w obu wywolaniach korzystasz z tego samego KODU SKRYPTU).
Guest
problem w tym ze wywolujac formularz metoda POST kasowane sa zmienne sesji i global....
ale domyslam sie ze to juz osobny problem, pewnie wielokrotnie poruszany... wiec nie zabieram wam juz czasu
Najki
Nie wiem czy dobrze zrozumiałem, ale chyba chodzi tutaj o zmienne globalne. Jeśli zmienną $i zmieniasz za pomocą funkcji wywoływanej n razy to na początku funkcji umieść linijkę "global $i;", która sprawi, że zmienna $i wewnątrz funkcji nadpisze wartość zmiennej $i poza funkcją (w całym skrypcie).
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.