Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] Odwołanie się przez referencje
Forum PHP.pl > Forum > Przedszkole
rafaelb
Zacząłem sie zastanawiać które rozwiązanie jest poprawne.

Czy deklaracja funkcji z referencja do zmiennych
  1. <?php
  2. $var = 20;
  3. print $var.'<BR>';
  4. b($var);
  5. print $var.'<BR>';
  6.  
  7. function b(&$v){
  8. $v = $v * $v;
  9. print 'Z funkcji b '.($v).'<br>';
  10.  
  11. }
  12. ?>


Czy deklaracja funkcji i podczas wywołania funkcji odwołanie sie przez referencje
  1. <?php
  2. $var = 10;
  3. print $var.'<BR>';
  4. a(&$var);
  5. print $var.'<BR>';
  6.  
  7. function a($v){
  8. $v = $v * $v;
  9. print 'Z funkcji a '.($v).'<br>';
  10.  
  11. }
  12. ?>


Oba sposoby dają to samo, ale który jest poprawny i szybszy. Jeżeli będę przekazywał duży obiekt
kresh
Pierwszy sposób tworzy referencję do argumentu przekazanego do funkcji za każdym razem gdy funkcja jest wywoływana. Natomiast w drugim przypadku to referencja do zmiennej przekazywana jest do funkcji - czyli decydujesz kiedy chcesz utworzyć referencję a kiedy nie.

W pierwszym przypadku argumentem może być tylko zmienna.

  1. <?php
  2. b( 2 );
  3. /* takie wywołanie funkcji spowoduje błąd parsera:
  4. Fatal error: Only variables can be passed by reference
  5. */
  6. ?>
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.