Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Argumenty funkcji jako referencje, Nieznana liczba argumentow
lord_t
post 1.08.2008, 09:52:56
Post #1





Grupa: Zarejestrowani
Postów: 603
Pomógł: 131
Dołączył: 24.07.2007
Skąd: Górny Śląsk

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


Elo,

chciałbym napisać funkcję przyjmującą różną ilość argumentów (np. 0,3,1000), które to będę w niej zmieniał i chcę żeby poza funkcją były zmienione. Stąd referencja. Parametry odbiorę sobie poprzez:
  1. <?php
  2. $ilosca = func_num_args();
  3. $args  = func_get_args();
  4. ?>

Jak zrobić, żeby wszystkie arg. były przekazane przez referencję i bez wykorzystania tablicy w wywołaniu funkcji?


--------------------
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
Marek Rynarzewsk...
post 7.11.2011, 10:45:01
Post #2





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 7.11.2011

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


Możesz spróbować tego:
  1. <?php
  2. function arrbyref(&$array, $search, $replace_on, $act_on_keys = true)
  3. {
  4. if ($act_on_keys)
  5. if (array_key_exists($search, $array))
  6. $array[$search] = $replace_on;
  7. else
  8. return false;
  9. else
  10. {
  11. if (in_array($search, $array))
  12. {
  13. $key = array_search($search, $array);
  14. $array[$key] = $replace_on;
  15. }
  16. }
  17. }
  18. $a = 1;
  19. $b = 'ala';
  20. $c = 0x35fa;
  21. $d = array(&$a, &$b, &$c); //zapisujesz zmienne w tablicy przez referencję
  22. arrbyref($d, 'ala', 'alina', false);
Go to the top of the page
+Quote Post
cojack
post 7.11.2011, 11:05:11
Post #3





Grupa: Zarejestrowani
Postów: 898
Pomógł: 80
Dołączył: 31.05.2008

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


  1. mojafunkcja(&$as, &$ok, &$wtf);


--------------------
cojack blog - mój blog (na jakiś czas off).
"jak czegoś nie wiem, to nie myślę że wiem" - moja domena
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 Wersja Lo-Fi Aktualny czas: 19.07.2025 - 19:38