[PHP4] OO returnen van object pointer

Pagina: 1
Acties:

  • THIJZEL
  • Registratie: Januari 2001
  • Niet online
Hallo, Ik ben momenteel bezig met het schrijven van een bepaade klasse. Deze klasse heeft een functie &addSection($name).

Deze functie moet een pointer naar een (in de funtie gemaakt) Object van de klasse Section.

Ik heb dus het volgende stukje code geschreven om het te testen:
code:
1
2
3
4
5
6
$sec = $test->addSection("jo");
$sec->addKey("tdj","val");

print_r($sec);
print "<br>";
print_r($test);


Uit deze print_r blijkt dat de key wel in $sec is toegevoegd maar niet in het Section object in $test; addSection heeft dus géén pointer teruggegeven!
Wanneer ik de volgende testcode gebruik werkt het wél:
code:
1
2
3
4
5
6
$sec = & $test->addSection("jo");
$sec->addKey("tdj","val");

print_r($sec);
print "<br>";
print_r($test);

Maar.. het feit dat addSection een pointer teruggeeft moet IN de klasse Configfile vastgelegd worden en niet door de gebruiker er van! Weet iemand hoe ik kan zorgen dat
code:
1
 function &addSection($name)
wél werkt?


edit: addSection ziet er als volgt uit:
code:
1
2
3
4
5
    function &addSection($name)
    {
        $this->sections[] = new Section($name);
        return $this->sections[count($this->sections)-1];
    }

[ Voor 17% gewijzigd door THIJZEL op 19-08-2005 15:05 ]


  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06-2025

drm

f0pc0dert

mja references in php4 :X

Misschien helpt 't als je 't als volgt doet:
code:
1
2
3
4
5
function &addSection ( $name ) {
   $section =& new Section ( $name );
   $this->sections[]= &$section;
   return $section;
}


Ik ben er in php4 voor 't grootste gedeelte van afgestapt de code te baseren op references, want 't levert een hoop gedonder op. Ik raad je 'tzelfde aan :)

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz


  • THIJZEL
  • Registratie: Januari 2001
  • Niet online
hm ja ,maar in sommige gevallen kan het zoo veel makkelijker, mooier en netter zijn om references te gebruiken.

  • DJ Buzzz
  • Registratie: December 2000
  • Laatst online: 01-05 22:47
Dan zou ik toch overstappen op PHP5, heb je veel beter oo ondersteuning en zijn objecten standaard ook call by reference

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 01-05 21:33

.oisyn

Moderator Devschuur®

Demotivational Speaker

Moet je niet bij het returnen ook specifiek & meegeven?

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


  • THIJZEL
  • Registratie: Januari 2001
  • Niet online
djbuzzz schreef op vrijdag 19 augustus 2005 @ 15:19:
Dan zou ik toch overstappen op PHP5, heb je veel beter oo ondersteuning en zijn objecten standaard ook call by reference
Zou het graag willen( programmeer ook in java O+ ), maar helaas gaan al die servers en die bergen code niet 123 over :)
.oisyn schreef op vrijdag 19 augustus 2005 @ 15:32:
Moet je niet bij het returnen ook specifiek & meegeven?
Dat geeft een "parse error, unexpected '&'", mag dus niet.

By the way, bij XMLDOC in php 4 gaat het wel, getuige het volgende stukje code:

code:
1
2
3
 $doc = new_xmldoc("1.0");
 $trucks = $doc->add_root('trucks');
 $signonrequest = $trucks->new_child("signonrequest","");


Weet iemand of ik de (php) source van deze xmldoc ergens kan bekijken.

[ Voor 69% gewijzigd door THIJZEL op 19-08-2005 16:31 ]

Pagina: 1