Šta je razlika između prosleđivanja po vrednosti i po referenci?

Šta je razlika između prosleđivanja po vrednosti i po referenci?

offline
  • Pridružio: 29 Maj 2014
  • Poruke: 54

Ucim php,malo me zbunjuje ovo pitanje.Bio bih zahvalan ako bi mi neko malo obrazlozio.



Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
offline
  • Pridružio: 25 Jan 2004
  • Poruke: 2784
  • Gde živiš: Niš

Takav koncept prosleđivanja nije isključivo vezan za PHP, ali PHP svakako ima svoj unikatan i jednostavan princip.

U PHP-u se sve od primitivnih tipova podataka prosleđuje sa vrednošću. Drugim rečima, sve osim Objekata instanciranih iz klasa.

To znači, ako nekoj funkciji / metodi proslediš običnu String promenljivu ili neki Array, koji potom biva izmenjen u scope-u te funkcije, vrednost neće biti promenjena na mestu odakle je prosleđena i neće uticati na global namespace ni na koji način.

U slučaju kada želiš suprotno, da proslediš referencu na tu promenljivu (njen pointer u memoriji), primitivne tipove prosleđuješ sa znakom & ispred naziva i to je sve.

Prosleđivanje konstruisanih objekata iz klasa se implicitno prosleđuje sa referencom (&), tako da o tome ne moraš da vodiš računa i neće se ništa desiti ako proslediš objekat takođe sa &, samo će sintaksički biti eksplicitno navedeno.



Ko je trenutno na forumu
 

Ukupno su 906 korisnika na forumu :: 5 registrovanih, 0 sakrivenih i 901 gosta   ::   [ Administrator ] [ Supermoderator ] [ Moderator ] :: Detaljnije

Najviše korisnika na forumu ikad bilo je 3466 - dana 01 Jun 2021 17:07

Korisnici koji su trenutno na forumu:
Korisnici trenutno na forumu: branko7, Japidson, kybonacci, WerWolf14, wizzardone