Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php] Odwołanie się przez referencje
rafaelb
post
Post #1





Grupa: Zarejestrowani
Postów: 49
Pomógł: 2
Dołączył: 17.01.2004

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


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
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 1)
kresh
post
Post #2





Grupa: Zarejestrowani
Postów: 99
Pomógł: 2
Dołączył: 8.11.2005
Skąd: Kraków

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


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. ?>


Ten post edytował kresh 27.04.2007, 12:35:16
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 23.08.2025 - 20:06