Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Argumenty funkcji z tablicy
...
post
Post #1





Grupa: Zarejestrowani
Postów: 16
Pomógł: 0
Dołączył: 1.10.2006

Ostrzeżenie: (0%)
-----


Witam, mam pewien problem. Chciałbym wykonać funkcję której argumentami są elementy tablicy.
  1. <?php
  2. $argumenty = Array("argument1", "argument2", "argument3", (...));
  3.  
  4. function f($arg1, $arg2, $arg3, (...) ){}
  5. ?>

Wiem, że mogę podać 1 parametr który jest tablicą, ale nie o to mi chodzi. Zapewne odpowiedź jest bardzo prosta, ale nie mogłem na nią wpaść od rana ;D

Do czego mi to? Ucze się pisać obiektowo i tworze taki mały framework. Problem jest taki że nie wiem ile zostanie dodanych argumentów w tablicy, a pętla nie bardzo tu pasuje. Dodatkowo nie chcę używać func_get_args() lub &.
Wiem, że jest to rozwiązane np w frameworku CodeIgniter (parametry akcji w kontrolerach)
Go to the top of the page
+Quote Post
Mlodycompany
post
Post #2





Grupa: Zarejestrowani
Postów: 910
Pomógł: 44
Dołączył: 20.02.2008
Skąd: Łódź

Ostrzeżenie: (20%)
X----


mozesz zrobic tak ze w tablicy masz argumenty, tworzysz sobie funkcje np
  1. <?php
  2. function wyswietl($arg){
  3. echo $arg;
  4. }
  5. ?>

a potem petle
  1. <?php
  2. foreach($tablica as $arg){
  3. wyswietl($arg);
  4. }
  5. ?>
Go to the top of the page
+Quote Post
...
post
Post #3





Grupa: Zarejestrowani
Postów: 16
Pomógł: 0
Dołączył: 1.10.2006

Ostrzeżenie: (0%)
-----


Cytat(Mlodycompany @ 3.07.2008, 00:10:16 ) *
mozesz zrobic tak ze w tablicy masz argumenty, tworzysz sobie funkcje np
  1. <?php
  2. function wyswietl($arg){
  3. echo $arg;
  4. }
  5. ?>

a potem petle
  1. <?php
  2. foreach($tablica as $arg){
  3. wyswietl($arg);
  4. }
  5. ?>

Wiem że tak można. Problem jest taki że wywoła to funkcję tyle razy ile jest argumentów, a tego bym nie chciał. Chce po prostu wywołać raz funkcję z parametrami z tablicy.
Go to the top of the page
+Quote Post
Mlodycompany
post
Post #4





Grupa: Zarejestrowani
Postów: 910
Pomógł: 44
Dołączył: 20.02.2008
Skąd: Łódź

Ostrzeżenie: (20%)
X----


hmm ale chyba nie ma roznicy czy wywolasz funkcje z kilkoma argumentami od wywolania kilku funkcji z jednym argumentem
Go to the top of the page
+Quote Post
mls
post
Post #5





Grupa: Zarejestrowani
Postów: 677
Pomógł: 89
Dołączył: 31.08.2003
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Cytat(... @ 3.07.2008, 00:07:32 ) *
Witam, mam pewien problem. Chciałbym wykonać funkcję której argumentami są elementy tablicy.
  1. <?php
  2. $argumenty = Array("argument1", "argument2", "argument3", (...));
  3.  
  4. function f($arg1, $arg2, $arg3, (...) ){}
  5. ?>

Wiem, że mogę podać 1 parametr który jest tablicą, ale nie o to mi chodzi. Zapewne odpowiedź jest bardzo prosta, ale nie mogłem na nią wpaść od rana ;D


  1. <?php
  2. $argumenty = array('argument1', 'argument2', 'argument3');
  3. call_user_func_array('jakasfunkcja', $argumenty);
  4.  
  5. function jakasfunkcja ()
  6. {
  7. $argumenty = func_get_args()
  8. print_r($argumenty);
  9. }
  10. ?>


Ten post edytował mls 2.07.2008, 23:59:19


--------------------
Go to the top of the page
+Quote Post
...
post
Post #6





Grupa: Zarejestrowani
Postów: 16
Pomógł: 0
Dołączył: 1.10.2006

Ostrzeżenie: (0%)
-----


Cytat(mls @ 3.07.2008, 00:59:06 ) *
  1. <?php
  2. $argumenty = array('argument1', 'argument2', 'argument3');
  3. call_user_func_array('jakasfunkcja', $argumenty);
  4.  
  5. function jakasfunkcja ()
  6. {
  7. $argumenty = func_get_args()
  8. print_r($argumenty);
  9. }
  10. ?>

Dzięki. O to mi chodziło. O funkcję call_user_func_array(). Dziwne, że jej w manualu nie znalazłem...
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 19.08.2025 - 16:58