![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 361 Pomógł: 22 Dołączył: 10.02.2015 Ostrzeżenie: (0%) ![]() ![]() |
Mam przykładowy kodzik:
I teraz w dokumencie php chcąc tą funckję wywołać to muszę przykładowo pisz(); Pytanie czy da się zrobić tak żeby funkcja była wywołana wtedy gdy jest umieszczona w kodzie bez tego wywoływania (np pisz();)czy za każdym razem trzeba to zrobić? Ten post edytował Fred1485 16.03.2015, 16:23:33 -------------------- |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 594 Pomógł: 122 Dołączył: 17.07.2005 Skąd: P-na Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 361 Pomógł: 22 Dołączył: 10.02.2015 Ostrzeżenie: (0%) ![]() ![]() |
Ale ja nie chcę sprawdzać czy funkcja została wywołana tylko przy jej definiowaniu ją "od razu" samoistnie wywołać
![]() -------------------- |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 594 Pomógł: 122 Dołączył: 17.07.2005 Skąd: P-na Ostrzeżenie: (0%) ![]() ![]() |
aaa, to było jaśniej
![]() to w pliku ktorym ja definiujesz od razu daj jej wywołanie |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 36 Pomógł: 0 Dołączył: 16.01.2015 Ostrzeżenie: (0%) ![]() ![]() |
Ale tez muszę ją wywołać ręcznie? Nie mogę w funkcji zaznaczyc zeby sie wywołała? Wiem że to trochę dziwne co mówię
|
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 178 Pomógł: 49 Dołączył: 16.04.2012 Skąd: Bytom Ostrzeżenie: (0%) ![]() ![]() |
Cytat Ale tez muszę ją wywołać ręcznie? Nie mogę w funkcji zaznaczyc zeby sie wywołała? Wiem że to trochę dziwne co mówię Deklaracja funkcji nie uruchamia jej. Zastanawia mnie, czemu nie możesz po prostu użyć po prostu "pisz();"? |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 594 Pomógł: 122 Dołączył: 17.07.2005 Skąd: P-na Ostrzeżenie: (0%) ![]() ![]() |
możesz pobrać wszystkie funkcje
http://php.net/manual/en/function.get-defined-functions.php php samo z siebie nie wywołuje wszystkich możliwych funkcji |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 36 Pomógł: 0 Dołączył: 16.01.2015 Ostrzeżenie: (0%) ![]() ![]() |
No mogę mogę ale tak mnie to zastanawiało
![]() ![]() |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 47 Pomógł: 6 Dołączył: 26.12.2006 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Ale tez muszę ją wywołać ręcznie? Nie mogę w funkcji zaznaczyc zeby sie wywołała? Wiem że to trochę dziwne co mówię Nie można wywołać funkcji bez jej wywołania. A jeżeli wywołanie funkcji umiejścisz w jej ciele to powstanie nieskończona pęta. To co piszesz świadczy o błędnym sposobie podejścia do konstruowania skryptów. Jest to niezgodne z zasadami sztuki mówiącymi chociażby o wielokrotnym wykorzystaniu tego samego kodu. Deklaracji funcji i innego kodu nie umieszczaj w miejscu jej wywołania ale w bibiotekach. Inaczej powstaje chaos. No mogę mogę ale tak mnie to zastanawiało ![]() ![]() Być może używają wywołań funkcji w sposób nieliteralny nie np. "pisz()" tylko np. $functionPisz() ale na pewno ten cms nie działa to w taki sposób że deklaracja fukcji wywołuje ją w miejscu jej deklaracji. |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 36 Pomógł: 0 Dołączył: 16.01.2015 Ostrzeżenie: (0%) ![]() ![]() |
Czyli najlepiej utworzyc jakis plik np functions.php i tam wszystkie funkcje trzymać?
|
|
|
![]()
Post
#11
|
|
![]() Grupa: Zarejestrowani Postów: 113 Pomógł: 18 Dołączył: 7.10.2007 Skąd: Pruszków Ostrzeżenie: (0%) ![]() ![]() |
Funkcję można też wywołać np. tak
http://php.net/manual/en/function.call-user-func.php -------------------- |
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 6 806 Pomógł: 1828 Dołączył: 11.03.2014 Ostrzeżenie: (0%) ![]() ![]() |
Możesz wywołać funkcję anonimową, podobnie jak w JS: (function(){alert(1);})();
Tylko jaki to ma sens... -------------------- |
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 594 Pomógł: 122 Dołączył: 17.07.2005 Skąd: P-na Ostrzeżenie: (0%) ![]() ![]() |
A jeżeli wywołanie funkcji umiejścisz w jej ciele to powstanie nieskończona pęta. To jest tzw. wywołanie rekurencyjne i nie zawsze oznacza nieskończoną pętlę Czyli najlepiej utworzyc jakis plik np functions.php i tam wszystkie funkcje trzymać? nie, bo po jakimś czasie Ci się plik rozrośnie i nagle zauważysz że ma kilkadziesiąt/set funkcji pogrupować w pliki "tematycznie" czyli klasy -> doczytać oop Ten post edytował johny_s 16.03.2015, 17:27:16 |
|
|
![]()
Post
#14
|
|
Grupa: Zarejestrowani Postów: 36 Pomógł: 0 Dołączył: 16.01.2015 Ostrzeżenie: (0%) ![]() ![]() |
Moglbys coś wiecej o tych klasach? Jakis artykułl o tym czy cos? Nie mysl ze czekam na gotowe ale na razie nie wiem dokladnie co za "czarna magia" to jest "(
|
|
|
![]()
Post
#15
|
|
Grupa: Zarejestrowani Postów: 47 Pomógł: 6 Dołączył: 26.12.2006 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Czyli najlepiej utworzyc jakis plik np functions.php i tam wszystkie funkcje trzymać? Zgasza się. Wyobraź sobie co musiał byś zrobić kiedy będziesz chciał użyć funkcji "pisz" ponowanie w jakimś innym miejscu, jeżeli zadeklarujesz ją np. w pliku szalobnu. Iportować szablon html żeby wywołać funkcję? Totalna pomyłka. Lepszym rozwiązaniem jest kiedy deklaracje funcji umiesza się w jednym pliku np. functions.php który pełni rolę bibioteki i inludować tylko zawsze ten sam plik zawsze kiedy potrzebujesz użyć zadeklarowanych w nim funkcji. Między innymi dlatego język jest tak skonstruowany bo zakłada takie własnie użycie. |
|
|
![]()
Post
#16
|
|
Grupa: Zarejestrowani Postów: 361 Pomógł: 22 Dołączył: 10.02.2015 Ostrzeżenie: (0%) ![]() ![]() |
Mariner,
Cytat nie, bo po jakimś czasie Ci się plik rozrośnie i nagle zauważysz że ma kilkadziesiąt/set funkcji pogrupować w pliki "tematycznie" czyli klasy -> doczytać oop W takim razie jak się do wypowiedzi kolegi ustosunkujesz? -------------------- |
|
|
![]()
Post
#17
|
|
Grupa: Zarejestrowani Postów: 47 Pomógł: 6 Dołączył: 26.12.2006 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Moglbys coś wiecej o tych klasach? Jakis artykułl o tym czy cos? Nie mysl ze czekam na gotowe ale na razie nie wiem dokladnie co za "czarna magia" to jest "( To o co pytasz to programowanie obiektowe. O programowaniu obiektowych w php jest dużo w necie, nie problem znaleźć. Niemniej jest to jedna z najbardziej istotnych kwestii i podstawa pracy programisty. Także obowiązkowo musisz znać i posługiwac się programowaniem obiektowym. Cytat W takim razie jak się do wypowiedzi kolegi ustosunkujesz? Żeby organizować funckje w klasy wpierw trzeba znać przeznaczenie tych funkcji. Wobec zadanego pytania, czy deklaracje umieszczać w miejscu wywołania, wystarczającą informacją jest to że należy trzymać kod w plikach bioblitecznych a czy ma to być tylko jeden plik oraz czy ma zwierać klasy zamiast funkcji, to kwestia względna i w tym pytaniu zdaje się nie istotna. Cytat To jest tzw. wywołanie rekurencyjne i nie zawsze oznacza nieskończoną pętlę Naprawdę? A gdzie jest napisane że "zawsze oznacza"? Ten post edytował Mariner 16.03.2015, 18:09:37 |
|
|
![]()
Post
#18
|
|
Grupa: Zarejestrowani Postów: 361 Pomógł: 22 Dołączył: 10.02.2015 Ostrzeżenie: (0%) ![]() ![]() |
O programowaniu obiektowym słyszałem i też go troszkę już próbuję
![]() -------------------- |
|
|
![]()
Post
#19
|
|
Grupa: Zarejestrowani Postów: 47 Pomógł: 6 Dołączył: 26.12.2006 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Cytat O programowaniu obiektowym słyszałem i też go troszkę już próbuję wink.gif Ale jak to się ma do tego pliku functions.php z wszystkimi funkcjami? Kolega wyżej napisał że to zły pomysł bo się plik rozrośnie do wielu linijek kodu... Duże partie kodu bibiotecznego umieszcza się w róznych plikach ze względów wydajnościowych, żeby nie ładować funkcji których nie potrzebujemy. Odpowiedź kolegi, o wielu plikach bibiotecznych opiera się na złozeniu że będziesz miał dużo funkcji. Ja tego nie wiem ile masz funkcji. Starałem się przedstawić Tobie jedynie tylko koncepcję mówiącą że deklarację umiejszczamy w bibiotekach a czy będzie to jeden plik czy wiele kwestia względna zależy od Ciebie. W dużej ilość funcji faktycznie dobrym pomysłem jest ich podzielenie na plikich wedłuch spełnianych przez nie zadań. Np. wszystkie funkcje odpowiedzialne za komunikację z bazą umieszczamy w pliku functions_db.php, funkcje odpowiedzialne za przetwarzenie html functions_helper.php i tak dalej. Wtedy mamy łatwe rozeznanie który plik w danym momencie mamy zaincludować. I tak, jak wykonujemy update bazy danych to includujemy plik z funkcjami odpowiedzialnymi za komunikację z bazą danych, jak obrabiamy gdzieś html to potrzebuemy plik tylko z funkcjami odpowiedzialnymi za html. Zauważ że dzięki temu nie ładujemy wszystkich fukcji, osczędzając dzięki temu pamięć i nie obciążając serwer. Z drugiej zaś strony jezeli masz np. tylko dwie funkcje to jaki jest sens umieszczania ich w osobnych plikach? Chyba żaden. Lepiej umieścić je w jednym pliku. Tak to generalnie w skrócie wygląda. |
|
|
![]()
Post
#20
|
|
Grupa: Zarejestrowani Postów: 342 Pomógł: 15 Dołączył: 30.08.2011 Ostrzeżenie: (0%) ![]() ![]() |
Naprawdę? A gdzie jest napisane że "zawsze oznacza"? Napisałeś to tak jak by zawsze wywoływało nieskończoną pętlę... precyzuj albo nie pisz głupot. @autor, możesz pogrupować sobie w foldery odpowiednie biblioteki funkcyjne, wtedy łatwiej się odnaleźć we wszystkim. |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 14.08.2025 - 09:05 |