![]() |
![]() ![]() |
![]() |
-matahmed- |
![]()
Post
#1
|
Goście ![]() |
Mój problem polega na tym że zazwyczaj używam c++ a php tylko w razie nagłej potrzeby (IMG:style_emoticons/default/wink.gif) . Zasdniczo chodzi o to że napisałem funkcję która przyjmuje dużo parametrów. Ponieważ często tą funkcję wywołuję postanowiłem sobie zdefiniować jakiś literał -> żeby usprawnić pisanie kodu.
zrobiłem to w następujący sposób: wywołanie funkcji:
Problem jest taki że funkcja wywołuje się z jednym parametrm równym stringowi -> 'ROZKAZ', 3 , 'dane', 4 , 'jakis_string', 4 a chciałbym żeby wywoła się z 6 parametrami (3 stringami i 3 int'ami). Ktoś wie jak rozwiązać taki problem, ew wytłumaczyć jak działa funkcja define w php? Od razu uprzedzę komentarze w stylu: "Po co do 6 argumentów definiować literał(IMG:style_emoticons/default/questionmark.gif) " - problem który przedstawiłem to duże uproszczenie mojego problemu, ale obrazuje o co mi chodzi. Z góry dzięki za każdą pomoc. |
|
|
![]()
Post
#2
|
|
Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
define definiuje stałą, która może być tekstem czy też liczbą. I ty właśnie definiujesz tekst a nie parametry funkcji
Zaś twoja funkcja wymaga podania 6 parametrów a nie jednego. Skąd niby funkcja ma wiedzieć, że to co podałeś to ty sobie zamażyłeś by ona to traktowała jako 6 parametrow? |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 2 885 Pomógł: 463 Dołączył: 3.10.2009 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Define przyjmuje dwa parametry wymagane i jeden opcjonalny. Tego w ten sposób nie zrobisz. Użyj tablicy parametrów i przekaż ją do funkcji.
|
|
|
![]()
Post
#4
|
|
Grupa: Moderatorzy Postów: 6 072 Pomógł: 861 Dołączył: 10.12.2003 Skąd: Dąbrowa Górnicza ![]() |
define działa tak. Dziwisz się, że do funkcji przekazywany jest ciąg znaków? No ale taką wartość przyjmuje Twoja stała. Jeśli chcesz tą wartość przekształcić na tablicę to skorzystaj chociażby z explode, po czym przekaż ją do call_user_func_array w celu wywołania funkcji z parametrami.
|
|
|
-matahmed- |
![]()
Post
#5
|
Goście ![]() |
może inaczej: w c++ zobiłbym to tak:
#define parametry "ROZKAZ", 3 , "dane", 4 , "jakis_string", 4 kompilator na przed kompilacją w każde miejsce w kodzie gdzie występuje słowo "parametry" wstawi to co jest zdefiniowane. Czyli dla kompilatora sformułowanie: jakas_funkcja(parametry) będzie oznaczało dokładnie: jakas_funkcja("ROZKAZ", 3 , "dane", 4 , "jakis_string", 4) dlatego moje pytanie jak działa funkcja define w php... |
|
|
![]()
Post
#6
|
|
Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Cytat dlatego moje pytanie jak działa funkcja define w php... No i dostałeś odpowiedź.... ba, i to nawet nie jedną. Więc to teraz przeczytaj i przestan patrzeć jak było w c++ bo php to nie c++
|
|
|
-Gość- |
![]()
Post
#7
|
Goście ![]() |
No i dostałeś odpowiedź.... ba, i to nawet nie jedną. Więc to teraz przeczytaj i przestan patrzeć jak było w c++ bo php to nie c++ Bez nerwów (IMG:style_emoticons/default/biggrin.gif) - napisałem to jako odpowiedź na drugiego posta w tym temacie -> w trakcie pisania pojawiły się kolejne odpowiedzi których nie zdążyłem wtedy przeczytać. Już mniej więcej wiem jak rozwiązać problem . Wszystkim dzieki za pomoc |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 915 Pomógł: 210 Dołączył: 8.09.2009 Skąd: Tomaszów Lubelski/Wrocław Ostrzeżenie: (0%) ![]() ![]() |
W C/C++ nazywa się to preprocessor. C Compatible Preprocessor for PHP: http://code.metala.org/p/ccpp/
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 24.08.2025 - 14:40 |