Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] dynamiczne przekaznie argumentów do funkcji
Forum PHP.pl > Forum > PHP
Gligamesh
Witajcie, nadziałem się na mały problem i nie wiem jak go rozwiązać, oto prosty przykład

  1. $controller = New $controller;
  2. $controller->$function($params);


params to jest tablica np
Kod
Array ( [0] => wartosc [1] => wartosc1 [2] => cos )


Chcę by z automatu tablica stanowiła argumeny funkcji w taki sposób jak byśmy to pisali z palca czyli np:
  1. function przyklad($wartosc, $wartosc1, $cos) {
  2. }

nie
  1. function przyklad($array) {
  2. }


poratuje ktoś ?
CuteOne
hmm argumenty to nie trasformersy, same się nie zmienią

zobacz tutaj: http://php.net/manual/en/function.func-get-args.php
korniks
Pozwolę sobie stwierdzić, że nie ma możliwości aby wywołać funkcje z tablicą jako parametr, a odebrać w funkcji 3 różne argumenty.

Btw, jaki masz problem z przypisaniem poszczególnych elementów tablicy do zmiennych, przed wywołaniem albo w funkcji?
Gligamesh
skoro params jest tablicą to argument jest tylko jedn i nazwę sobie można nadać dowolną więc nie widzę sensu stosowania func_get_args() bądź czegokolwiek podobnego. Ponadto efekt ciągle taki sam, czyli tablica i jedna funkcja więcej.

Cytat
Pozwolę sobie stwierdzić, że nie ma możliwości aby wywołać funkcje z tablicą jako parametr, a odebrać w funkcji 3 różne argumenty.

bo nie chodzi o to by przekaząć tablicę tylko odpowiedno ją zmodyfikować tak by funkcja przyjeła kilka argumentów (tu chyba moja wina że niesprecyzowaniem na początku, wydało mi się to jasne)

Cytat
Btw, jaki masz problem z przypisaniem poszczególnych elementów tablicy do zmiennych, przed wywołaniem albo w funkcji?
Przed jak widać spore inaczej bym nie zakłądał tematu.....
wewnątrz teoretycznie żadnych ale nie mam zamiaru tego robić w każdej klasie. Innymi słowy szybciej, ładniej, czytelniej, funkcjonalniej
Crozin
ReflectionClass:newInstanceArgs
Gligamesh
Można prosić konkretniej ? Bo z tego co widzę to nie bardzo, zwłaszcza że mi zależy na samej funkcji nie całej klasie.
Crozin
W takim razie ReflectionFunction, ta sama metoda.
Gligamesh
Przekopałem to i z tego co widzę w nielicznych przykładach i tak jest wymagana deklaracja więc totalnie mija się to z celem (sztuka dla sztuki). Chyba że masz coś innego na myśli ale ani wiedzy w tym zakresie ani magicznej kuli nie mam ,więc prosiłbym o jakiś szerszy opis.
Crozin
Cytat
Chyba że masz coś innego na myśli ale ani wiedzy w tym zakresie ani magicznej kuli nie mam ,więc prosiłbym o jakiś szerszy opis.
Ale masz manuala i podany link jak wywołać konstruktor klasy, gdzie argumenty są podane w tablicy. Skoro nie o konstruktor, a o metodę chodzi wystarczyło poświęcić tych 15 sekund na znalezienie ReflectionMethod::invokeArgs(object, array). Poza opisem masz nawet przykład obrazujący jak na dłoni jak tego użyć.
zegarek84
rany julek sciana.gif
call_user_func_array - masz tam przykłady...
Gligamesh
no i dla call_user_func_array faktycznie wystarczyło 15 sekund, i na to też się zdecydowałem. Dziękuje.

co do pozostałych sugestii:
Cytat
Ta funkcja jest obecnie nieudokumentowana

z php mam bardzo mało styczności i raczej z musu. Wyraźnie napisałem że proszę o konkretniejszą informację, pewno nie bez powodu!
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.