Hirdetés

Keresés

Új hozzászólás Aktív témák

  • cucka

    addikt

    válasz DNReNTi #15266 üzenetére

    Az első ciklusban érték szerinti értékátadást használsz a ciklusban. Ez úgy működik, hogy az $uj_tomb[0] értéke a $regi_tomb[0] értékének másolata. Tehát a háttérben egy darab memória tartalmát átmásolja egy másik memóriaterületre.

    A második ciklusban referencia szerinti értékátadás történik. Ez úgy működik, hogy az $uj_tomb[0] semmi más, csak egy új név ugyanarra a memóriadarabra, amire a $regi_tomb[0] is mutat. Lényegében ez egy alias. Ha az egyik értékét módosítod, a másik is módosul. A memória, amire mutatnak, csak akkor fog felszabadulni, ha mindkét változót törlöd (unset) - ez fasza memory leak forrás, oda kell rá figyelni.

    A harmadik ugyanaz, mint a második, csak for helyett foreach ciklussal. Többnyire ezt érdemes a for ciklus helyett használni.

    Ja, és az ne zavarjon meg, hogy a tömbök 0. elemével írtam a példát, a fentiek bármilyen változóra igazak. Továbbá z objektumok érték szerinti átadása totál máshogy működik.

Új hozzászólás Aktív témák