🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: be.comp.programming
Article #5307

Re: PHP probleempje

#5307
From: Roel Schroeven
Date: Sun, 11 May 2003 15:44
66 lines
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-mail
References: <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