[PHP5] Objecten / referenties

Pagina: 1
Acties:

  • BoomSmurf
  • Registratie: Maart 2003
  • Laatst online: 13-06-2025
Even wat vraagjes om te kijken of ik het nu correct begrijp:

1) Als ik "$a = new MijnObject;" doe, en ik geef $a door aan een berg functies, die zelf ook weer andere functies, method etc aanroepen, dan moeten deze in de declaratie allemaal het & teken hebben staan om het object ipv een kopie door te geven. In de code zelf hoeft dan weer geen & teken te staan.

2) Je kan zo vaak als handig is gewoon & toevoegen en het zal altijd naar het origineel wijzen, niet naar 'tussenliggende' referenties
PHP:
1
2
3
4
5
6
7
8
$a = new Henk;
$b = &$a;
$c = &$b;
$d = &$c;

$a = 'Blaat';
$b = 'Toos';
// $d == 'Blaat', en niet 'Toos' ?


3) In een method werkt $this zonder het & teken op zichzelf en niet op een kopie, terwijl als ik $this door wil geven aan een andere functie/method/... &$this moet gebruiken.

Beetje domme vragen misschien maar ik vind het allemaal een beetje onduidelijk :) Klopt het zo?

  • MikeN
  • Registratie: April 2001
  • Laatst online: 06-05 19:43
In PHP5 worden objecten altijd als referentie doorgegeven. In PHP4 is de situatie zoals jij beschrijft (behalve dan dat je bij $this ook een & moet gebruiken volgens mij)

  • BoomSmurf
  • Registratie: Maart 2003
  • Laatst online: 13-06-2025
Dat maakt het allemaal een stuk makkelijker dan! Probeer ik het dus allemaal voor niets te begrijpen ;)

  • Michali
  • Registratie: Juli 2002
  • Laatst online: 22-03 18:12
MikeN schreef op dinsdag 14 juni 2005 @ 15:45:
In PHP5 worden objecten altijd als referentie doorgegeven. In PHP4 is de situatie zoals jij beschrijft (behalve dan dat je bij $this ook een & moet gebruiken volgens mij)
Objecten worden altijd als referentie doorgegeven idd, ook $this dus, dat is altijd een object. Mijd & gewoon, daar krijg je alleen maar problemen mee.

Edit:

Een variable wat naar een object verwijst is altijd een referentie in php. Je maakt dus wel een kopie van de variable, maar die verwijst nog steeds naar hetzelfde object.

[ Voor 19% gewijzigd door Michali op 14-06-2005 16:08 ]

Noushka's Magnificent Dream | Unity


  • b19a
  • Registratie: September 2002
  • Niet online
Michali schreef op dinsdag 14 juni 2005 @ 16:06:
Een variable wat naar een object verwijst is altijd een referentie in php. Je maakt dus wel een kopie van de variable, maar die verwijst nog steeds naar hetzelfde object.
Een variabele is een referentie naar het object, en je maakt dus een kopie van die referentie?

[ Voor 20% gewijzigd door b19a op 14-06-2005 23:37 ]


  • Michali
  • Registratie: Juli 2002
  • Laatst online: 22-03 18:12
BoukeHaarsma schreef op dinsdag 14 juni 2005 @ 23:37:
[...]

Een variabele is een referentie naar het object, en je maakt dus een kopie van die referentie?
Klopt ja, en die wijst dan naar hetzelfde object als de variabel waar het een kopie van is. Het is geen echte referentie, omdat als je een nieuwe waarde aan de variabel toekent, de andere variabel dan nog steeds blijft verwijzen naar het object waar het al naar verwees. Het zijn dus 2 verschillende variabelen die beide naar hetzelfde object verwijzen. (zo had ik laatst geleerd in een topic hier op GoT ;))

Noushka's Magnificent Dream | Unity

Pagina: 1