Article View: be.comp.programming
Article #5307Re: PHP probleempje
From: Roel Schroeven
Date: Sun, 11 May 2003 15:44
Date: Sun, 11 May 2003 15:44
66 lines
2715 bytes
2715 bytes
Ward Poelmans wrote:
> Kan iemand mij zeggen waarom het volgende stukje php
> code niet werkt?
> Als je het uitvoert staat er gewoon:
> Naam:
> Terwijl er:
> Naam: Hello
> zou moeten staan.
>
> Ward.
>
> <?php
>
> class test {
> var $naam;
> function setnaam($naam) {
> $this->naam = $naam;
> }
>
> function getnaam() {
> return $this->naam;
> }
> }
>
> function haaldata($data) {
> $data->setnaam("hello");
> }
>
> function toondata($data) {
> echo "Naam: " . $data->getnaam() . "<br>";
> }
>
> $gegevens = new test;
> haaldata($gegevens);
> toondata($gegevens);
>
> ?>
Je moet in haaldata en toondata het argument $data meegeven als call by
reference in plaats van call by value. Anders wordt het object in zijn
geheel gekopieerd, en werken de instructies binnen de functies op die
kopie in plaats van op het origineel.
In php doe je dat door er '&' voor te zetten in de functiedefinitie:
function haaldata(&$data) ...
en
function toondata(&$data) ...
Eigenlijk begrijp ik wel niet goed waarom je daar ook geen member
functies van maakt. In plaats van
haaldata($gegevens);
toondata($gegevens);
kan je het dan zo doen:
$gegevens->haaldata();
$gegevens->toondata();
Mij lijkt dat alleszins logischer.
--
"Codito ergo sum"
Roel Schroeven
http://roelschroeven.net
Technical Details
Message-ID:
<hduva.83942$t_2.7923@afrodite.telenet-ops.be>Path:
arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!sn-xit-02!sn-xit-04!sn-xit-06!sn-xit-09!supernews.com!news.maxwell.syr.edu!newsfeed.icl.net!newsfeed.fjserv.net!opentransit.net!wanadoo.fr!proxad.net!news-hub.cableinet.net!blueyonder!btnet-peer!btnet!newsfeed.london1.eu.level3.net!level3eu!ossa.telenet-ops.be!afrodite.telenet-ops.be.POSTED!not-for-mailReferences:
<pan.2003.05.11.14.54.45.290882@my-mail.ch.REMOVE_THIS>Show Full Headers
Complete Article Headers
X-Google-Language: DUTCH,ASCII-7-bit X-Google-Thread: fcea4,bef9cac2557c1711 X-Google-Attributes: gidfcea4,public X-Google-ArrivalTime: 2003-05-11 08:44:15 PST Path: arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!sn-xit-02!sn-xit-04!sn-xit-06!sn-xit-09!supernews.com!news.maxwell.syr.edu!newsfeed.icl.net!newsfeed.fjserv.net!opentransit.net!wanadoo.fr!proxad.net!news-hub.cableinet.net!blueyonder!btnet-peer!btnet!newsfeed.london1.eu.level3.net!level3eu!ossa.telenet-ops.be!afrodite.telenet-ops.be.POSTED!not-for-mail From: Roel Schroeven <j4nff5m02@sneakemail.com> User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.3) Gecko/20030312 X-Accept-Language: nl-be, nl, en-us, en MIME-Version: 1.0 Newsgroups: be.comp.programming Subject: Re: PHP probleempje References: <pan.2003.05.11.14.54.45.290882@my-mail.ch.REMOVE_THIS> In-Reply-To: <pan.2003.05.11.14.54.45.290882@my-mail.ch.REMOVE_THIS> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Lines: 67 Message-ID: <hduva.83942$t_2.7923@afrodite.telenet-ops.be> Date: Sun, 11 May 2003 15:44:13 GMT NNTP-Posting-Host: 81.83.126.43 X-Complaints-To: abuse@telenet.be X-Trace: afrodite.telenet-ops.be 1052667853 81.83.126.43 (Sun, 11 May 2003 17:44:13 MET DST) NNTP-Posting-Date: Sun, 11 May 2003 17:44:13 MET DST Organization: Telenet Internet